#ruby #heroku #redis
Вопрос:
Используя план rediscloud на 1 ГБ, я, похоже, не могу подключиться к указанной изолированной базе данных. Например, в ruby (с использованием ruby 2.2.10, библиотека redis ruby 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
параметре:
redis = Redis.new(url: "#{ENV['REDISCLOUD_URL']}/4")
redis.get 'foo' # => Redis::CommandError: ERR DB index is out of range
Я не сталкивался с этой проблемой в других экземплярах redis. Я что-то неправильно понимаю в redis, dbs или rediscloud?
Комментарии:
1.
REDISCLOUD_URL
Действительно ли это происходит в вашей среде Heroku? Возвращает ли он полный URL-адрес сredis://
протоколом и портом? Вы пытались связать номер БД с URL-адресом следующим образом:Redis.new(url: "#{ENV['REDISCLOUD_URL']}/4")
?2. ДА. Он возвращает полный протокол и порт. Если я инициализируюсь
Redis
сdb: 0
помощью , клиент работает так, как ожидалось. Я получаю ту же ошибку индекса базы данных, однако, если я укажу базу данных Redis, как вы предложили (добавив «/4»).3. Я также отмечу, что указание базы данных «/0» в URL-адресе работает.
Ответ №1:
Из того, что я могу собрать, похоже, что rediscloud-это продукт, который автоматически не поставляется с базами данных. Это требует, чтобы вы добавили их вручную, несмотря на то, что в плане указано, что базы данных включены. Соответствующая документация.