Flask -Redis python: redis.exceptions.ResponseError: индекс БД находится вне диапазона - PullRequest
0 голосов
/ 25 марта 2020

Я использую flask -Redis и при использовании соединения типа 'redis: // :password@localhost: 6379/3' получаю ошибку: redis.exceptions.ResponseError: Индекс БД выходит за пределы допустимого диапазона. и при использовании соединения типа 'redis: //: localhost: 6379/3' оно работает нормально. Я не могу понять, как справиться с этим.

1 Ответ

0 голосов
/ 06 апреля 2020

Короткий ответ - заменить 3 в конце строки подключения на 0 Отформатированная строка должна выглядеть следующим образом

redis://{username}:{password}@localhost:6379/0

DB index is out of range означает, что индекс канала на конец строки подключения (3) превышает максимальное значение для вашей установки. Обычно есть 16 каналов, поэтому без дополнительной информации неясно, какое это максимальное значение может быть для вашей конкретной версии. Однако, если Redis установлен правильно, вы можете быть уверены, что значение 0 будет в правильном диапазоне индекса. Вы можете легко проверить вашу установку, используя инструмент redis-cli

$ redis-cli -n 0 -h localhost -c 'PING'
PONG

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

Если вы не настроили Redis для явного указания пароля, тогда не нужно указывать значение. То же самое для имени пользователя, по умолчанию Redis не будет иметь установленного значения, поэтому оба из них могут быть опущены, поэтому, когда вы говорите, что вторая версия строки соединения работает, это делает.

...