我正在使用flask-Redis,并且在使用类似'redis://:password @ localhost:6379/3'之类的连接时收到错误:redis.exceptions.ResponseError:数据库索引超出范围。在使用“ redis://:localhost:6379/3”之类的连接时,它工作正常。我不知道如何处理。
简短的答案是将连接字符串末尾的3
替换为0
,格式化后的字符串应如下所示
redis://{username}:{password}@localhost:6379/0
DB index is out of range
表示连接字符串(3
)末尾的通道索引超过了安装的最大值。通常有16个通道,因此,在没有更多信息的情况下,您不清楚特定版本的最大值。但是,假设已正确安装Redis,则可以确保0
的值将在正确的索引范围内。您可以使用redis-cli
工具轻松地验证您的安装
$ redis-cli -h localhost -c 'PING'
PONG
除非您有非常令人信服的理由进行其他操作,否则应坚持使用默认通道值0
。您可以从Redis的作者本人身上了解更多有关此here的信息。
如果未将Redis明确配置为要求密码,则无需提供任何值。与用户名相同,默认情况下,Redis不会设置值,因此可以忽略这两个值,这就是为什么当您说第二个版本的连接字符串起作用时,它会起作用的原因。