0

私はこれに何日も取り組んできましたが、何が悪いのかわかりません。

他のすべては機能していますが、redis で「ECONNREFUSED」が表示されます。次のインスタンスを実行しています:

app01 ROLE: app
web01 ROLE: web
db01 ROLE:db:primary
redis01 ROLE:redis_master
redis02 ROLE:redis_slave
sidekiq01 ROLE:redis

productionlog からのエラーは次のとおりです。

Redis::CannotConnectError (Error connecting to Redis on localhost:6379 (ECONNREFUSED)):
app/models/user.rb:63:in `send_password_reset'
app/controllers/password_resets_controller.rb:10:in `create'

すべてラバージェムを使用して設定されています。

すべてのインスタンスを削除して、最初から2回開始しようとしました。また、カスタム セキュリティ ルールを作成しようとしましたが、正しく作成したかどうかはわかりません。

私を助けてください!

4

1 に答える 1

0

今日同じ問題に苦しんでいたときにこの投稿を見つけたので、この投稿を復活させます。次のようにして問題を解決しました。

  1. を使用してサーバーに redis_slave または redis_master ロールを追加しましたcap rubber:add_role。これにより、指定されたロールと一般的な「redis」ロールの両方が追加されることがわかりました。ロールを追加した後、redis01 を唯一の redis_master にしたい場合、環境には次のものが必要です。

    app01 ROLE: app
    web01 ROLE: web
    db01 ROLE:db:primary
    redis01 ROLE:redis_master
    redis01 ROLE:redis
    redis02 ROLE:redis_slave
    redis01 ROLE:redis
    sidekiq01 ROLE:redis_slave
    sidekiq01 ROLE:redis
    
  2. 役割を設定した後、サーバーを更新しましたcap rubber:bootstrap

  3. 私の環境では、git からコードをデプロイしているので、これらの変更をコミットしてcap -s branch="branch_name_or_sha" deploy実行し、新しいロールを持つサーバーで rubb/deploy-redis.rb を取得して実行する必要がありました。

これをすべて実行した後、redis はすべてのノードでRedis::CannotConnectError (Error connecting to Redis on localhost:6379 (ECONNREFUSED))エラーをスローすることなく実行されます。

幸運を!

于 2014-02-08T17:41:54.657 に答える