2013-10-07 95 views
6

我想在Heroku上使用Redis,但我得到了這個錯誤Redis::CannotConnectError (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED))想要在Heroku上使用Redis(Redis :: CannotConnectError(在127.0.0.1:6379(ECONNREFUSED)上連接到Redis的錯誤))

我檢查了這些,但沒有得到幫助。 Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSEDdeploying redis to heroku unable to connectHow 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」 是,我可以看到$ heroku config時相同的URL。

我在Heroku GUI上重新啓動Redis,但它不起作用。

請告訴我任何我需要做的事情。 謝謝你的幫助。

回答

4

您正在嘗試連接到您自己的計算機(note 127.0.0.1 == localhost)。我猜這不是您正在尋找的Redis服務器:)

看起來像ENV["REDISTOGO_URL"]未正確設置。


而且,只是一個側面說明,查找Redis To Go,如果你還沒有準備好,這是大多數人在Heroku上有一個共同的Redis服務器上使用。

+0

謝謝你,Varatis。壞處是我把REDIS URL(值)放在ENV []裏面,而不是鍵。這就是Redis不工作的原因。 –

8

檢查其ENV變量應該包含Redis的配置

例如,如果你要使用的Redis爲Sidekiq需要ENV [ 「REDISTOGO_URL」]映射到ENV [ 「REDIS_PROVIDER」] 因爲Sidekiq期望着從ENV [ 「REDIS_PROVIDER」]獲得Redis的配置

你能做到這樣

heroku config:set REDIS_PROVIDER=REDISTOGO_URL 

另外你也不需要URI.parse,如果需要的話,Redis會代替你做。

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

我建議使用gem figaro爲您的本地開發設置ENV變量。因此,你刪除OR聲明

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

,並設置替代值在配置/ application.yml

REDISTOGO_URL: redis://127.0.0.1:6379 
相關問題