6

我想在 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.

我在 Heroku GUI 上重新启动了 Redis,但它不起作用。

请告诉我我需要做的任何事情。谢谢您的帮助。

4

2 回答 2

9

检查哪个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 
于 2014-11-19T22:27:33.783 回答
4

您正在尝试连接到您自己的计算机(注意 127.0.0.1 == localhost)。我猜这不是您要查找的 Redis 服务器 :)

看起来ENV["REDISTOGO_URL"]没有正确设置。


另外,顺便说一句,如果您还没有,请查找Redis To Go,这是大多数人与 Heroku 一起用作 Redis 服务器的方法。

于 2013-10-07T19:19:03.307 回答