Heroku上的Redis会话商店

时间:2012-10-04 03:37:21

标签: session heroku redis ruby-on-rails-3.2

我正在尝试将redis商店用作heroku上的会话商店。它在开发中工作正常,但我无法在heroku上获得redis连接。它正在尝试连接到127.0.0.1而不是正确的redis服务器。

错误:

ActionView::Template::Error (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)):

我已将heroku redis配置设置为正确的服务器(并非真正用于会话存储但已设置)

REDISTOGO_URL: redis://redistogo:################################@carp.redistogo.com:9274/

session_store.rb

GrnAuth::Application.config.session_store :redis_store, :server => APP_CONFIG['redis_server'], key: '_grn_session'

的environment.rb

# Load the rails application
require File.expand_path('../application', __FILE__)
require 'yaml'
APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]

# Initialize the rails application
GrnAuth::Application.initialize!

config.yml

development:
  redis_server: redis://localhost:6379/

test:
  redis_server: redis://localhost:6379/

production:
  redis_server: redis://redistogo:################################@carp.redistogo.com:9274/

当我进入heroku时,我可以检查APP_CONFIG['redis_server']并将其设置为redis服务器。

我还设置了一个redis连接,只是为了使用它。

redis.rb

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/" )
$redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

当我进入heroku时,我可以做到并获得以下内容

irb(main):001:0> $redis
=> #<Redis client v3.0.1 for redis://carp.redistogo.com:9274/0>

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

看起来像这样:

GrnAuth::Application.config.session_store :redis_store, :server => APP_CONFIG['redis_server'], key: '_grn_session'

应该是这样的:

GrnAuth::Application.config.session_store :redis_store, :servers => APP_CONFIG['redis_server'], key: '_grn_session'