Хотите использовать Redis на Heroku (Redis:: CannotConnectError (ошибка подключения к Redis на 127.0.0.1:6379 (ECONNREFUSED)))

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

Я проверил , но не помогло. Redis подключение к 127.0.0.1: 6379 не удалось-подключение ECONNREFUSED, развертывание redis в heroku не удалось подключиться, Как заставить Redis начать Heroku? .

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

Я использую RedisToGo (nano) и, в /config/инициализаторы/redis.РБ я пишу этот.

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 GUI, но это не работает.

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

2 ответов


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

выглядит так:ENV["REDISTOGO_URL"] неправильно установлен.


кроме того, просто Примечание, посмотрите вверх Redis Идти если вы еще этого не сделали, что большинство людей используют в качестве сервера Redis в сочетании с Heroku.


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

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

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

heroku config:set REDIS_PROVIDER=REDISTOGO_URL

Также вам не нужно URI.разбор, Redis сделает это вместо вас на случай, если понадобится.

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

Я предлагаю использовать камень Фигаро для установки переменных ENV для локальной разработки. Таким образом вы удаляете или сообщении

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

и установите альтернативное значение в вашем конфиг/приложения.в формате YML

REDISTOGO_URL: redis://127.0.0.1:6379