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>
どんな助けでも大歓迎です。ありがとうございました。