2013-05-31 2 views
1

У меня есть следующий рубин, чтобы подписаться на канал.Redis -Pub Sub - Сроки подключения к Redis

Когда я устанавливаю хост на «localhost», у меня нет проблем -i.e. script запускается

Когда я установил IP-адрес (где redis запущен), кроме localhost, я получаю таймаут. Завершение подключения к 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

Вы настроили redis для прослушивания на правильном IP-адресе? По умолчанию он только прослушивает localhost. В redis.comf вы найдете строку, которая говорит bind 127.0.0.1. Либо прокомментируйте это, чтобы прослушать redis во всех адресах системы, либо изменить адрес localhost на адрес, который вы хотите прослушать.

Помните, что установка его на IP будет означать, что он будет доступен только на этом IP-адресе.

После того, как вы внесли изменения, перезапустите службу redis. Затем проверьте использование redis-cli, как описано в this answer to a similar question

Смежные вопросы