[英]Rails - Redis::CannotConnectError: Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)
[英]Want to use Redis on Heroku (Redis::CannotConnectError ( Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)) )
我想在Heroku上使用Redis但我收到此錯誤Redis::CannotConnectError (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED))
。
我檢查了這些,但沒有得到幫助。 Redis連接到127.0.0.1:6379失敗 - 連接ECONNREFUSED , 將redis部署到heroku無法連接 , 如何讓Redis在Heroku上啟動? 。
我使用Ruby 2.0.0p247和Rails4。 我正在使用美洲獅。
我使用RedisToGo(nano),在/config/initializers/redis.rb中我寫了這個。
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/" )
$redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
我檢查過“REDISTOGO_URL”是我在$ heroku config
時可以看到的URL。
我在Heroku GUI上重啟Redis,但它不起作用。
請告訴我我需要做的任何事情。 謝謝您的幫助。
檢查哪個ENV變量應包含redis配置
例如,如果您要將Redis用於Sidekiq,則需要將ENV [“REDISTOGO_URL”]映射到ENV [“REDIS_PROVIDER”],因為Sidekiq期望從ENV [“REDIS_PROVIDER”]獲得redis配置
你可以這樣做
heroku config:set REDIS_PROVIDER=REDISTOGO_URL
此外,您不需要URI.parse ,Redis會在需要時代替您。
$redis = Redis.new(url: ENV['REDISTOGO_URL' || "redis://localhost:6379/"])
我建議使用gem figaro為您的本地開發設置ENV變量。 因此,您刪除OR語句
$redis = Redis.new(url: ENV['REDISTOGO_URL'])
並在config / application.yml中設置替代值
REDISTOGO_URL: redis://127.0.0.1:6379
您正在嘗試連接到自己的計算機(請注意127.0.0.1 == localhost)。 我猜這不是你正在尋找的Redis服務器:)
看起來ENV["REDISTOGO_URL"]
沒有正確設置。
另外,只是旁注,如果你還沒有,請查看Redis To Go ,這是大多數人與Heroku一起用作Redis服務器的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.