我想在 Heroku 上使用 Redis,但出现此错误 Redis::CannotConnectError(在 127.0.0.1:6379 (ECONNREFUSED) 上连接到 Redis 时出错)
。
我检查了这些,但没有得到帮助。 Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED , deploying redis to heroku unable to connect , How to get Redis to start on 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配置
例如,如果您要为 Sidekiq 使用 Redis,则需要将 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
关于ruby-on-rails - 想在 Heroku 上使用 Redis (Redis::CannotConnectError ( Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)) ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19232756/