Ruby & Redis / Skidekiq URI::InvalidURIError: the scheme redis does not accept registry part: bsc_redis:6379 (or bad hostname?)
Ruby & Redis / Skidekiq URI::InvalidURIError: the scheme redis does not accept registry part: bsc_redis:6379 (or bad hostname?)
在我的 docker 服务器上,我在 sidekiq/redis URL URL sepcification 上遇到错误:
Sidekiq.configure_client do |config| config.redis = { url: "redis://bsc_redis:6379", size: 1 } end
我明白了
URI::InvalidURIError: the scheme redis does not accept registry part:
bsc_redis:6379 (or bad hostname?) from
/usr/local/lib/ruby/2.0.0/uri/generic.rb:214:in initialize' from
/usr/local/lib/ruby/2.0.0/uri/common.rb:218:in
new' from
/usr/local/lib/ruby/2.0.0/uri/common.rb:218:in parse' from
/usr/local/lib/ruby/2.0.0/uri/common.rb:747:in
parse' from
/usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:86:in
log_info' from
/usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:20:in
create' from
/usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq.rb:131:in redis='
from (irb):4:in
block in irb_binding' from
/usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq.rb:83:in
configure_client' from (irb):4 from
/usr/local/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in
start' from
/usr/local/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in
start' from
/usr/local/bundle/gems/railties-3.2.13/lib/rails/commands.rb:41:in
' from script/rails:6:in require' from
script/rails:6:in
'
但是当我指定 bsc_redis 容器的 IP 地址时它起作用了:
Sidekiq.configure_client do |config| config.redis = { url: "redis://172.18.0.5:6379", size: 1 } end
=> {:url=>"redis://172.18.0.5:6379", :size=>1}
当我从 rails 容器 ping bsc_redis
时,它从 172.18.0.5 响应。我找不到任何问题,为什么会这样。
有什么想法吗?
谢谢
尝试使用
config.redis = { url: "redis://bsc_redis:6379/0"}
或
config.redis = { host: "bcs_redis", port: 6379, db: 0}
两者都有效,但我想可能会有一些问题,因为第一个基于 docker 的 dns sidekiq 处理得不好
在 docker 期间,只有这个对我有用
config.redis = { host: "bcs_redis", port: 6379, db: 0}
在我的 docker 服务器上,我在 sidekiq/redis URL URL sepcification 上遇到错误:
Sidekiq.configure_client do |config| config.redis = { url: "redis://bsc_redis:6379", size: 1 } end
我明白了
URI::InvalidURIError: the scheme redis does not accept registry part: bsc_redis:6379 (or bad hostname?) from /usr/local/lib/ruby/2.0.0/uri/generic.rb:214:in
initialize' from /usr/local/lib/ruby/2.0.0/uri/common.rb:218:in
new' from /usr/local/lib/ruby/2.0.0/uri/common.rb:218:inparse' from /usr/local/lib/ruby/2.0.0/uri/common.rb:747:in
parse' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:86:inlog_info' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:20:in
create' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq.rb:131:inredis=' from (irb):4:in
block in irb_binding' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq.rb:83:inconfigure_client' from (irb):4 from /usr/local/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in
start' from /usr/local/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:8:instart' from /usr/local/bundle/gems/railties-3.2.13/lib/rails/commands.rb:41:in
' from script/rails:6:inrequire' from script/rails:6:in
'
但是当我指定 bsc_redis 容器的 IP 地址时它起作用了:
Sidekiq.configure_client do |config| config.redis = { url: "redis://172.18.0.5:6379", size: 1 } end
=> {:url=>"redis://172.18.0.5:6379", :size=>1}
当我从 rails 容器 ping bsc_redis
时,它从 172.18.0.5 响应。我找不到任何问题,为什么会这样。
有什么想法吗?
谢谢
尝试使用
config.redis = { url: "redis://bsc_redis:6379/0"}
或
config.redis = { host: "bcs_redis", port: 6379, db: 0}
两者都有效,但我想可能会有一些问题,因为第一个基于 docker 的 dns sidekiq 处理得不好
在 docker 期间,只有这个对我有用
config.redis = { host: "bcs_redis", port: 6379, db: 0}