Ruby on rails 如何让Redis从Heroku开始?
我已经在Heroku上添加了Ruby on rails 如何让Redis从Heroku开始?,ruby-on-rails,heroku,redis,Ruby On Rails,Heroku,Redis,我已经在Heroku上添加了Redistogonano插件,并在控制台上成功测试了它。但是,当我的应用程序尝试与Redis连接时,出现以下错误: Heroku日志文件: 2011-10-12T08:19:50+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 2011-10-12T08:19:50+00:00 app[web.1]:
Redistogo
nano插件,并在控制台上成功测试了它。但是,当我的应用程序尝试与Redis连接时,出现以下错误:
Heroku日志文件:
2011-10-12T08:19:50+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):
2011-10-12T08:19:50+00:00 app[web.1]: app/controllers/sessions_controller.rb:14:in `create'
为什么它要在本地主机上访问Redis
config/initializers文件夹中的我的Redis.rb有这个问题,这几乎肯定是问题所在
#What's pasted below is pasted ad verbatim. I don't know what to change the values to.
uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
你在用Resque吗?如果是这样,您需要告诉Resque使用哪个Redis
Resque.redis = REDIS
如果没有,则说明您发布的代码没有设置您的REDIS连接。尝试以下操作:
heroku config --long | grep REDIS
查看您的REDISTOGO\u URL是什么。您可能是意外设置的。我猜ENV[“REDISTOGO\u URL”]是localhost?尝试在生产中使用此变量的heroku域url。heroku为您设置REDISTOGO_url当您将加载项添加到redis to go实例url时,如果它设置了url,为什么要尝试本地主机?尝试让redis gem处理您的url:
redis.connect(:url=>ENV['REDISTOGO_url'])
谢谢。你的这一行启发了我……不要在ENV[“REDISTOGO_URL”]中显式地写东西。顺便说一句,你可以在问题中显示的初始值设定项文件的末尾添加这一行,或者你可以用初始值设定项中的REDIS
变量替换Resque.REDIS
,让事情正常工作。大家竖起大拇指。这就是我问题的解决办法。这很奇怪,因为我使用的是ENV[“REDISTOGO\u URL”]而不是ENV[“my\u-actual\u-URL\u from\u-heroku”],它在heroku中工作