6

Heroku で Redis を使用したいのですが、このエラーが発生しましRedis::CannotConnectError (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED))た。

これらをチェックしましたが、助けにはなりませんでした。 127.0.0.1:6379 への Redis 接続に失敗しました - ECONNREFUSED に接続し、 redis を herokuにデプロイしています 接続できません。HerokuでRedis を起動するにはどうすればよいですか? .

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.

Heroku GUI で Redis を再起動しましたが、うまくいきません。

私がしなければならないことは何でも教えてください。ご協力ありがとうございました。

4

2 に答える 2

9

どのENV変数に redis 構成を含める必要があるかを確認します

たとえば、Sidekiq に Redis を使用する場合は、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'])

config/application.ymlに代替値を設定します

REDISTOGO_URL: redis://127.0.0.1:6379 
于 2014-11-19T22:27:33.783 に答える
4

自分のコンピューターに接続しようとしています (127.0.0.1 == localhost に注意してください)。それはあなたが探しているRedisサーバーではないと思います:)

ENV["REDISTOGO_URL"]正しく設定されていないようです。


また、補足として、Redis To Goをまだ調べていない場合は調べてください。これは、ほとんどの人が Heroku と組み合わせて Redis サーバーとして使用しているものです。

于 2013-10-07T19:19:03.307 に答える