Ruby on rails 设置Redis以配合Heroku和Rails 4.0.0

Ruby on rails 设置Redis以配合Heroku和Rails 4.0.0,ruby-on-rails,heroku,redistogo,Ruby On Rails,Heroku,Redistogo,我正在尝试将Redis设置为在Rails 4应用程序上运行。我也希望能够将它部署到Heroku 到目前为止,我所做的就是: 通过dashboard.heroku站点,我使用了Redis纳米版的一键安装,将插件安装到我的应用程序中 我将gem'redis'添加到我的gem文件中 在config/environments/development.rb中,我添加了这一行: ENV["REDISTOGO_URL"] = 'redis://redistogo:b9fc604b1c86a1f6c232ce1

我正在尝试将Redis设置为在Rails 4应用程序上运行。我也希望能够将它部署到Heroku

到目前为止,我所做的就是:

通过
dashboard.heroku
站点,我使用了Redis纳米版的一键安装,将插件安装到我的应用程序中

我将
gem'redis'
添加到我的gem文件中

config/environments/development.rb中,我添加了这一行:

ENV["REDISTOGO_URL"] = 'redis://redistogo:b9fc604b1c86a1f6c232ce1dd16cd989@albacore.redistogo.com:10280/'
然后,我创建了一个
config/initializers/redis.rb
文件,如下所示:

uri = URI.parse(ENV["redis://redistogo:b9fc604b1c86a1f6d872ce1dd16cd989@albacore.redistogo.com:10280/"] || "redis://localhost:6379/")
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
现在在我的控制台中运行
Redis
命令时,出现以下错误:

Redis::CannotConnectError:在127.0.0.1:6379(EconRefused)上连接到Redis时出错

我在这里做错了什么?我需要做什么来确保我可以在开发中测试并部署到Heroku而不会出现任何问题?

ENV[“REDISTOGO_URL”]应该在Heroku上的环境中。我将它从config/environments/development.rb中完全删除,并将redis.rb初始值设定项更改为:

uri = URI.parse(ENV.fetch("REDISTOGO_URL", "redis://localhost:6379/"))
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
只要在开发中没有设置该ENV var,它就会退回到本地redis安装。

要更新Rails 4:

uri = ENV["REDISTOGO_URL"] || "redis://localhost:6379/"
REDIS = Redis.new(:url => uri)
uri = ENV["REDISTOGO_URL"] || "redis://localhost:6379/"
REDIS = Redis.new(:url => uri)

另外,您可能希望使用
Redis.current
而不是设置
Redis
变量()。

对于Rails 4,我执行了以下操作

在控制台中:

heroku addons:create redistogo
heroku config:set REDIS_PROVIDER=REDISTOGO_URL
在我的
Procfile
中,我添加了:

worker: bundle exec sidekiq
在我的“gemfile.rb”中,我添加了:

gem 'redis'
我添加了以下文件,
config/initializers/redis.rb