Redis - конвейерная обработка

Redis - это TCP-сервер, поддерживающий протокол запроса / ответа. В Redis запрос выполняется с помощью следующих шагов:

  • Клиент отправляет запрос на сервер и читает из сокета, обычно блокирующим способом, ответ сервера.

  • Сервер обрабатывает команду и отправляет ответ клиенту.

Значение конвейерной обработки

Основное значение конвейерной обработки заключается в том, что клиент может отправлять несколько запросов на сервер, вообще не дожидаясь ответов, и, наконец, считывает ответы за один шаг.

пример

Чтобы проверить конвейерную обработку Redis, просто запустите экземпляр Redis и введите следующую команду в терминале.

$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR 
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379  
+PONG 
+OK 
redis 
:1 
:2 
:3

В приведенном выше примере мы проверим соединение Redis, используя PINGкоманда. Мы установили строку с именемtutorial со значением redis. Позже мы получаем значение этого ключа и увеличиваем номер посетителя в три раза. В результате мы видим, что все команды отправляются в Redis один раз, а Redis обеспечивает вывод всех команд за один шаг.

Преимущества конвейерной обработки

Преимущество этого метода - резко улучшенная производительность протокола. Ускорение, получаемое за счет конвейерной обработки, колеблется от пяти раз для подключений к localhost до не менее 100 раз для более медленных интернет-соединений.