Как работает Redis при одновременном доступе нескольких клиентов?

Первый клиент (локальный) пишет в список редис строку 50 байт 20 раз в секунду.
Допустим набрали 200 000 строк = 10 мегабайт
Второй клиент пытается получить первые 100 000 строк.
Передача через инет займет какое-то время.
Что в это время происходит с первым клиентом?
  • Вопрос задан
  • 3651 просмотр
Решения вопроса 1
Softovick
@Softovick
программист, администратор
Как уже сказали - Redis однопоточный, то есть запросы будут выполняться по очереди. Пока не сформирует данные для второго клиента, запрос первого не выполнится. Но следует понимать, что производительность Redis очень высокая. Настолько, что в случае 2 клиентов, один из которых 20 раз в сек пишет что-то в базу - вы просто не заметите задержки. Нормальная нагрузка для Redis это десятки и сотни тысяч запросов в сек, а то и млн.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
tumbler
@tumbler
бекенд-разработчик на python
Redis - однопоточный. Пока обрабатывается первый запрос, он принимает запросы от остальных клиентов и ставит их в очередь обработки. Поэтому не рекомендуется выполнять KEYS * на сервере с миллионом ключей.
Ответ написан
Комментировать
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
если проект еще в стадии разаработки, может взглянете на aerospike? есть коммунити (бесплатная) редакция

ps картинка для привлечения внимания

ps есть еще ArangoDB, тоже по дефолту оптимизированная на in-memory, многопоточная, и плюшек вообще вагон
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы