2013-10-07 3 views
6

Я хочу использовать Redis на Heroku, но я получил эту ошибку Redis::CannotConnectError (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)).Хотите использовать Redis на Heroku (Redis :: CannotConnectError (Ошибка подключения к Redis на 127.0.0.1:6379 (ECONNREFUSED)))

Я проверил их, но мне не помогли. Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED, deploying redis to heroku unable to connect, How to get Redis to start on Heroku?.

Я использую Ruby 2.0.0p247 и Rails4. Я использую пуму.

Я использую RedisToGo (nano) и в /config/initializers/redis.rb Я пишу это.

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/") 
$redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 

Я проверил "REDISTOGO_URL" тот же URL, что я могу видеть, когда $ heroku config.

Я сделал Redis перезагрузки на графическом экране Heroku, но он не работает.

Скажите, пожалуйста, что-нибудь, что мне нужно. Благодарим вас за помощь.

ответ

4

Вы пытаетесь подключиться к своему компьютеру (примечание 127.0.0.1 == localhost). Я предполагаю, что это не тот сервер Redis, который вы ищете :)

Похож, что ENV["REDISTOGO_URL"] настроен неправильно.


Кроме того, просто примечание стороны, искать Redis To Go, если вы уже не имеете, что то, что большинство людей используют в качестве сервера Redis в сочетании с Heroku.

+0

Спасибо, Varatis. Плохое значение было в том, что я поместил redis url (значение) внутри ENV [], а не в ключ. Вот почему Редис не работал. –

8

Проверьте, какие ENV переменная должна содержать REDIS конфигурацию

Например, если вы собираетесь использовать Redis для Sidekiq необходимо сопоставить ENV [ "REDISTOGO_URL"] к ENV [ "REDIS_PROVIDER"] потому что Sidekiq ожидает получить REDIS конфигурацию из ENV [ "REDIS_PROVIDER"]

Вы можете сделать это таким образом

heroku config:set REDIS_PROVIDER=REDISTOGO_URL 

Также вам не нужно URI.parse, Redis сделает это вместо вас в случае необходимости.

$redis = Redis.new(url: ENV['REDISTOGO_URL' || "redis://localhost:6379/"]) 

Я предлагаю использовать драгоценный камень figaro установить ENV переменные для местного развития. Таким образом, вы удалите ИЛИ о

$redis = Redis.new(url: ENV['REDISTOGO_URL']) 

и установить альтернативное значение в вашей конфигурации/application.yml

REDISTOGO_URL: redis://127.0.0.1:6379 
Смежные вопросы