Редис трубопровод против mget - PullRequest
0 голосов
/ 30 апреля 2020

Я использую MGET или pipe , но я не могу найти информацию о MGET, которую я ищу

Мой вариант использования заключается в замене 50 GET вызовов либо MGET, либо pipeline

. На данный момент я нашел следующее:

Когда мы используем pipeline, команды не гарантированно будет выполняться одна за другой, а другие клиентские команды могут выполняться между ними. Это означает, что когда мы группируем GET команды с pipeline, redis не будет заблокирован для O (50), и другие клиенты получат возможность выполнить свои команды (50 - это число вызовов GET, которые я группировка)

С другой стороны, для команды MGET я не смог найти информацию о том, как она работает - когда мы вызываем MGET с 50 ключами, будет ли команда блокировать экземпляр redis до тех пор, пока он не получит все ключи? Как работает MGET?

1 Ответ

2 голосов
/ 30 апреля 2020

Поскольку Redis является однопоточным, любая отдельная команда будет блокироваться до ее завершения. Включая MGET.

Конвейеры - это просто способ пакетирования команд, они не блокируют других клиентов.

Итак: MGET будет блокировать, а конвейер - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...