【发布时间】:2021-06-20 10:43:28
【问题描述】:
使用rediscloud 1GB plan,我似乎无法连接到指定的孤立数据库。例如,在 ruby 中(使用 ruby 2.2.10,redis ruby library v3.3.5):
redis = Redis.new(url: ENV['REDISCLOUD_URL'], db: 4)
redis.get 'foo' # => Redis::CommandError: ERR DB index is out of range
在url参数中指定db时得到类似的结果:
redis = Redis.new(url: "#{ENV['REDISCLOUD_URL']}/4")
redis.get 'foo' # => Redis::CommandError: ERR DB index is out of range
我没有遇到过其他redis实例的这个问题。我对 redis、dbs 或 rediscloud 有什么误解吗?
【问题讨论】:
-
REDISCLOUD_URL是否真的在您的 Heroku 环境中设置?它是否返回带有redis://协议和端口的完整 URL?您是否尝试将 DB 编号与以下 URL 连接起来:Redis.new(url: "#{ENV['REDISCLOUD_URL']}/4")? -
是的。它返回完整的协议和端口。如果我用
db: 0初始化Redis,客户端会按预期工作。我得到相同的错误 DB 索引错误,但是如果我按照您的建议指定 Redis 数据库(通过附加“/4”)。 -
我还要注意,在 url 中指定“/0”数据库是有效的。