Redis -Pub \ Sub - 超时连接到Redis

时间:2013-05-31 14:10:09

标签: ruby redis

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

当我将主机设置为'localhost'时,我没有问题-i.e.脚本启动

当我设置为除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

1 个答案:

答案 0 :(得分:0)

您是否配置了redis来侦听正确的IP地址?默认情况下,它仅侦听localhost。在redis.comf中,您将找到一行表示绑定127.0.0.1。要么注释掉redis会监听系统所有的地址,要么将localhost地址更改为你想要监听的地址。

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

完成更改后,重新启动redis服务。然后按照this answer to a similar question

中的说明使用redis-cli进行验证