【问题标题】:Redis -Pub\Sub - Timed out connecting to RedisRedis -Pub\Sub - 连接到 Redis 超时
【发布时间】:2013-05-31 14:10:08
【问题描述】:

我有以下红宝石订阅频道。

当我将主机设置为“本地主机”时,我没有任何问题 - 即脚本启动

当我设置为 localhost 以外的 IP 地址(运行 redis 的地方)时,我得到了超时。 连接到 Redis 超时 如果我删除 :timeout => 0 脚本将运行,但是我相信这是为订阅者设置的正确值,以确保我的客户端永远不会超时。

如何防止订阅者发生超时?

require 'redis'

$redis = Redis.new :host => 'IPADDRESS', :timeout => 0

$redis.subscribe('MyChannel', ) do |on|
  on.message do |channel, msg|
    puts "M is #{msg}"
  end
end

【问题讨论】:

    标签: ruby redis


    【解决方案1】:

    您是否已将 redis 配置为侦听正确的 IP 地址?默认情况下,它只侦听 localhost。在 redis.comf 中,你会发现一行写着 bind 127.0.0.1。要么注释掉它,让 redis 监听系统拥有的所有地址,要么将 localhost 地址更改为你希望它监听的地址。

    请注意,将其设置为 IP 意味着它只能在该 IP 上可用。

    完成更改后,重新启动 redis 服务。然后按照this answer to a similar question中的描述使用redis-cli进行验证

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-27
      • 2015-11-09
      • 1970-01-01
      • 2015-09-03
      • 2015-08-10
      • 2016-01-18
      • 2011-10-17
      • 1970-01-01
      相关资源
      最近更新 更多