Pipelining отправляет несколько команд без ожидания ответа на каждую, уменьшая число round trips и сетевых вызовов. Для 10 000 команд подберите ограниченные пакеты и обязательно прочитайте все ответы.
Как оптимизировать сетевой трафик к Redis с помощью pipelining, если необходимо отправить 10 000 команд?
Pipelining отправляет несколько команд без ожидания ответа на каждую, уменьшая число round trips и сетевых вызовов. Для 10 000 команд подберите ограниченные пакеты и обязательно прочитайте все ответы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Pipelining отправляет несколько команд без ожидания ответа на каждую, уменьшая число round trips и сетевых вызовов. Для 10 000 команд подберите ограниченные пакеты и обязательно прочитайте все ответы.
Размер выбирают по объёму команд и ответов, памяти и допустимой задержке: 10 000 маленьких INCR и 10 000 больших GET — разная нагрузка. Pipeline не означает атомарную транзакцию и не сокращает сами данные пропорционально числу команд. При обрыве часть операций могла выполниться, поэтому повтор требует идемпотентности. В Redis Cluster клиент распределяет команды по узлам; зависимые read-modify-write операции требуют другого механизма.
Источник: redis.io.