繁体   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