簡體   English   中英

想在Heroku上使用Redis(Redis :: CannotConnectError(在127.0.0.1:6379上連接到Redis時出錯(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM