Есть ли недостаток или накладные расходы для Redis Pipeline при выполнении небольшого набора команд?
Я читал, что использование Redis Pipeline может повысить производительность, отправляя пакет команд на сервер Redis, а не отправляя отдельные сообщения одно за другим, что может привести к задержке. Таким образом, существует грубая корреляция между количеством отдельных команд, которые у вас есть в пакете конвейера, и тем, насколько вы улучшаете скорость. Мой вопрос заключается в том, есть ли накладные расходы или недостатки в использовании Redis Pipeline, которые сделали бы его нецелесообразным в определенных ситуациях, особенно когда есть всего несколько простых команд, которые выполняются не так часто? Я понимаю, что фактическое улучшение в этих случаях будет очень незначительным, но мне интересно, может ли использование Pipeline ухудшить время выполнения на самом деле, введя какие-то накладные расходы?
1 ответ
Накладные расходы конвейера заключаются в том, что Redis необходимо ставить в очередь ответы на эти передаваемые по конвейеру команды перед отправкой клиенту, т. е. затратить память. Так что, как правило, вам лучше не создавать огромный конвейер.
В вашем случае, поскольку в вашем конвейере всего несколько простых команд, это не проблема.