Spring Redis конвейерная обработка шаблона делает многократное сетевое путешествие - PullRequest
0 голосов
/ 06 июня 2019

По этой ссылке конвейерная обработка против транзакции в redis

Я понимаю, что когда нужно запустить несколько команд от клиента до redis, мы можем использовать конвейеризацию для объединения команд на стороне клиентаи отправить один запрос в Redis и получить один ответ, содержащий все результаты отдельных команд.Например, если нужно запустить 10 команд, при конвейерной обработке мы объединяем / объединяем 10 команд в 1 запрос и запускаем этот 1 запрос от клиента, а затем получаем 1 ответ от сервера redis, этот ответ содержит результат для всех 10 команд.Таким образом, существует только один запрос и один ответ.

При использовании redisTemplate.executePipelined реализация выглядит иначе.Похоже, что redistemplate делает то, что он асинхронно запускает отдельные команды и ожидает отправки ответа, пока все команды не будут выполнены на сервере redis.В этом случае, если 10 команд должны быть запущены, то есть 10 запросов к серверу Redis и 1 ответ от сервера Redis.

Верно ли мое понимание, если так, то не является ли RedisTemplate менее оптимизированным, чем это может бытьи существуют ли какие-либо java-клиенты / библиотеки, которые уже предоставляют эту оптимизацию?

...