2011-10-12 11 views
17

私はHerokuにRedistogo nanoアドオンを追加しました。私はそれをコンソールで正常にテストしました。私のアプリは、Redisのに接続しようとしたときにしかし、私は次のエラーを取得する:RedisをHerokuで始めるには?

Herokuのログファイル:

2011-10-12T08:19:50+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 
2011-10-12T08:19:50+00:00 app[web.1]: app/controllers/sessions_controller.rb:14:in `create' 

なぜそれがローカルホスト上のRedisにアクセスしようとしていますか?

config/initializersフォルダのRedis.rbにはこれがありますが、これはほとんど問題になります。

#What's pasted below is pasted ad verbatim. I don't know what to change the values to. 

uri = URI.parse(ENV["REDISTOGO_URL"]) 
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 
+0

ENV ["REDISTOGO_URL"]はlocalhostでしょうか?あなたがプロダクションでこの変数のherokuドメインURLを使ってみてください。 –

+1

Herokuは、アドオンをインスタンスURL –

+2

に移動するために追加するときにREDISTOGO_URLを設定します。URLを設定すると、なぜlocalhostが試行されますか? – Simpleton

答えて

21

Resqueを使用していますか?その場合、ResqueにどのRedisを使用するかを伝える必要があります。

Resque.redis = REDIS 

あなたが投稿したコードは、あなたのREDIS接続を設定していません。

+1

ところで、質問に表示されているイニシャライザファイルの最後にこの行を追加するか、 '' 'REDIS'''変数をイニシャライザの' 'Resque.redis'''で置き換えることができます働く – fholgado

+1

メガの親指をアップ。これは私の問題の解決策でした。 ENV ["REDISTOGO_URL"] ENV ["my_actual_url_from_heroku"]ではなく、ヒーローで働いていたので奇妙です – Sasha

6

この試してみてください:あなたのREDISTOGO_URLが何であるかを見るために

heroku config --long | grep REDIS 

を。誤って設定した可能性があります。

+2

Redis gemがURLを扱うようにしましょう: 'Redis.connect(:url => ENV ['REDISTOGO_URL']) ' – Jonathan

+0

ありがとうございます。あなたの行は私にインスピレーションを与えました... ENV ["REDISTOGO_URL"]に明示的に何かを書くのではなく – Sasha

関連する問題