1

Heroku のセッション ストアとして redis ストアを使用しようとしています。開発中は問題なく動作しますが、heroku で redis 接続を取得できません。正しい redis サーバーではなく、127.0.0.1 に接続しようとしています。

エラー:

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

heroku redis config を正しいサーバーに設定しました (実際にはセッションストアに使用していませんが、設定されています)

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'

環境.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>

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

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'
于 2012-10-04T20:53:54.097 に答える