【问题标题】:ECONNREFUSED on redis what to do?redis上ECONNREFUSED怎么办?
【发布时间】:2013-02-18 21:40:37
【问题描述】:

我已经为此工作了好几天,但我不知道出了什么问题。

其他一切正常,但我在 redis 上得到“ECONNREFUSED”。 我正在运行以下实例:

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

这是生产日志中的错误:

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'

一切都是用橡胶宝石设置的。

我已尝试删除所有实例并从头开始两次。我也尝试过制定自定义安全规则,但我不知道我是否做得对。

请帮帮我!

【问题讨论】:

    标签: ruby-on-rails-3 amazon-ec2 redis capistrano sidekiq


    【解决方案1】:

    把这篇文章从死里复活,因为我今天在同样的问题上苦苦挣扎时发现了它。我通过执行以下操作解决了我的问题:

    1. 我使用cap rubber:add_role 向服务器添加了 redis_slave 或 redis_master 角色。我发现这将添加指定的角色和通用的“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. my 环境中,我正在从 git 部署代码,因此我必须提交这些更改并运行 cap -s branch="branch_name_or_sha" deploy 以在服务器上获取 Rubber/deploy-redis.rb新角色并执行它。

    做完这一切后,redis 在我的所有节点上运行,而不会在其中任何一个节点上抛出 Redis::CannotConnectError (Error connecting to Redis on localhost:6379 (ECONNREFUSED)) 错误。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2013-06-05
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2019-01-17
      • 2012-03-18
      • 1970-01-01
      相关资源
      最近更新 更多