设置Redis To Go与Heroku和Rails 4.0.0



我正在尝试在我的Rails 4应用程序上设置Redis to Go。我希望能够将它部署到Heroku。

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

通过dashboard.heroku站点,我使用了Nano版本的Redis To Go的一键安装插件到我的应用程序。

我添加了gem 'redis'到我的gemfile.

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: Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)

我在这里做错了什么,我需要做些什么来确保我可以在开发和部署到Heroku中进行测试而没有任何问题?

ENV["REDISTOGO_URL"]应该在Heroku上的环境中。我会从配置/环境/开发中删除它。Rb和改变redis。

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安装。

更新brandonhilkert对Rails 4的回答:

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"中。我添加了:

gem 'redis'

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

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

相关内容

  • 没有找到相关文章

最新更新