我有以下红宝石订阅频道。
当我将主机设置为'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
答案 0 :(得分:0)
您是否配置了redis来侦听正确的IP地址?默认情况下,它仅侦听localhost。在redis.comf中,您将找到一行表示绑定127.0.0.1。要么注释掉redis会监听系统所有的地址,要么将localhost地址更改为你想要监听的地址。
请注意,将其设置为IP意味着它只能在该IP上使用。
完成更改后,重新启动redis服务。然后按照this answer to a similar question
中的说明使用redis-cli进行验证