ECONNREFUSED在redis上做什么?

时间:2013-02-18 21:40:37

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

我已经做了好几天了,我无法弄清楚出了什么问题。

其他一切正常,但我在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'

使用rubber-gem设置一切。

我试图删除所有实例并从头开始两次。此外,我试图制定一个自定义的安全规则,但如果我做对了,我就不会感到舒服。

请帮助我!

1 个答案:

答案 0 :(得分:0)

将这篇文章从死里复活,因为我在今天遇到同样的问题时找到了它。我通过执行以下操作解决了我的问题:

  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. 更新了服务器
  4. my 环境中,我正在从git部署代码,因此我必须提交这些更改并运行cap -s branch="branch_name_or_sha" deploy以获取rubber / deploy-redis.rb具有新角色的服务器并执行它。

  5. 完成所有这些操作后,redis会在我的所有节点上运行,而不会在任何节点上抛出Redis::CannotConnectError (Error connecting to Redis on localhost:6379 (ECONNREFUSED))错误。

    祝你好运!