Как подключить Redis cloud на heroku?

Рейтинг: 1Ответов: 1Опубликовано: 14.10.2014

Не пойму, как подключить redis на heroku.
Добавил аддон redis cloud к приложению, прописал в redis.rb следующее:

if ENV["REDISCLOUD_URL"]
  $redis = Redis.new(:url => ENV["REDISCLOUD_URL"])
else
  $redis = Redis.new(:host => 'localhost', :port => 6379)
end

Кроме этого, еще надо что-то прописать? REDISCLOUD_URL где-то явно указать? В консоле при попытке взаимодействовать с БД выводит:

Errno::ECONNREFUSED: Connection refused - Unable to connect to Redis on 127.0.0.1:6379

Ответы

▲ 1

У вас неверная конструкция if.

Для Rails 4:

if ENV["REDISCLOUD_URL"]
    $redis = Redis.new(:url => ENV["REDISCLOUD_URL"])
end

Не надо писать then, если условие не в одну строку. И вместо elsif - else.

Инструкция здесь.

Это для Resque и Redis.

# ../config/unicorn.rb

before_fork do |server, worker|
  # ...

  # If you are using Redis but not Resque, change this
  if defined?(Resque)
    Resque.redis.quit
    Rails.logger.info('Disconnected from Redis')
  end
end

after_fork do |server, worker|
  # ...

  # If you are using Redis but not Resque, change this
  if defined?(Resque)
    Resque.redis = ENV["REDISCLOUD_URL"]
    Rails.logger.info('Connected to Redis')
  end
end