Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Redis-Pub\Sub-连接到Redis时超时_Ruby_Redis - Fatal编程技术网

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

Ruby Redis-Pub\Sub-连接到Redis时超时,ruby,redis,Ruby,Redis,我有下面的ruby订阅一个频道 当我将主机设置为“localhost”时,我没有问题,即脚本启动 当我设置为本地主机以外的IP地址(redis正在运行的地方)时,我会得到一个超时。 连接到Redis时超时 如果我删除:timeout=>0,脚本将运行,但是我相信这是为订阅者设置的正确值,以确保我的客户端永远不会超时 如何防止订户发生超时 require 'redis' $redis = Redis.new :host => 'IPADDRESS', :timeout => 0 $

我有下面的ruby订阅一个频道

当我将主机设置为“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

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

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

完成更改后,重新启动redis服务。然后按照中的说明使用redis cli进行验证