#redis
#redis
Вопрос:
Я развернул службу redis, используя режим master-slave, с 3 узлами в Kubernetes. И я использую sentinel, чтобы он оставался доступным на высоком уровне. Все узлы установили requirepass
и masterauth
.
Когда я подключаюсь к любому из подчиненных узлов, выполняю команду авторизации, и через несколько секунд без операции, примерно через 5-15 секунд, redis снова требует авторизации.
Как я знаю, в redis нет элемента настроек с истекшим сроком действия. Итак, мне любопытно, является ли это механизмом redis, который я не знаю, или есть проблема в моей службе redis.
Комментарии:
1. совместное использование кода аутентификации — может помочь дать вам ответ
2. код аутентификации: region-agent-a1
Ответ №1:
Я предполагаю, что ваш сервер Redis установил timeout
конфигурацию как N секунд.
timeout
Параметр определяет, следует ли закрывать соединение после того, как клиент простаивает в течение N секунд (0 для отключения) (цитата из redis.conf).
Вы подключаетесь к Redis с помощью redis-cli и отправляете AUTH
команду Redis. Однако, если вы не отправите никаких других команд в течение N секунд, Redis закроет ваше соединение. Затем вы отправляете новое соединение с помощью redis-cli, redis-cli создаст новое соединение и отправит команду. Однако, поскольку это новое соединение, и AUTH
по этому соединению не было отправлено ни одной команды, произойдет сбой, и Redis запросит у вас аутентификацию.
Комментарии:
1. Я не установил параметр тайм-аута. По умолчанию остается значение 0, которое равно disable. И только при подключении к подчиненному узлу возникает такая ситуация. главный узел полностью нормальный