Не удается получить доступ к базам данных на heroku rediscloud

#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-это продукт, который автоматически не поставляется с базами данных. Это требует, чтобы вы добавили их вручную, несмотря на то, что в плане указано, что базы данных включены. Соответствующая документация.