我是新手Rails开发构建连接到redis + sidekiq的应用程序。我必须有一些配置错误,但我不确定它究竟是什么。下面,我将在这里写下我的确困惑:
运行rails后,我收到以下错误:
2016-07-09 08:55:46 - SocketError - getaddrinfo: nodename nor servname provided, or not known:
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/connection/ruby.rb:177:in `getaddrinfo'
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/connection/ruby.rb:177:in `connect'
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/connection/ruby.rb:260:in `connect'
/Users/rohitrekhi/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/client.rb:336:in `establish_connection'
所以我认为它必须是redis连接错误。当我ping redis以查看连接是否通过时,它显示以下内容:
$ redis-cli ping
=> PONG
所以如果redis连接通过,也许是Sidekiq问题?
我通过Sinatra实现了Sidekiq Web界面,并在我尝试查看时出现以下错误:
SocketError at /sidekiq/
getaddrinfo: nodename nor servname provided, or not known
所以现在我猜测错误实际上是通过Sidekiq,但我不确定我通过主机/服务器/套接字上的配置丢球。任何想法究竟是什么导致了这一点,如果是Sidekiq或redis的错误?
这是我的config / initializers / sidekiq.rb中sidekiq的初始化文件:
Sidekiq.configure_server do |config|
config.redis = { url: 'redis://redis.example.com:6379/12', network_timeout: 5 }
end
Sidekiq.configure_client do |config|
config.redis = { url: 'redis://redis.example.com:6379/12', network_timeout: 5 }
end
这是我的config / initializer / redis.rb:
$redis = Redis.new(:host => 'localhost', :port => 6379)
我还打开了三个终端窗口,打开了redis服务器,sidekiq和我的rails服务器。
提前致谢!
答案 0 :(得分:2)
这没有任何意义:
redis://redis.example.com:6379/12
您在该网址上没有Redis服务器;修复网址。