複数環境でredisを使う場合の設定方法です。
初期設定をコメントアウト
# config/initializers/session_store.rb # Be sure to restart your server when you modify this file. # Rails.application.config.session_store :cookie_store, key: 'app_name_session'
これをコメントアウトしておかないと、後で設定するコードと被って正常に作動しなくなります。
環境ごとに設定
環境ごとに設定していきます。
今回はdotenvで環境変数で管理することにしました。
# config/enviroments/development.rb
config.cache_store = :redis_store, {
host: ENV[‘REDIS_DEVELOPMENT_SERVER’],
port: ENV[‘REDIS_DEVELOPMENT_PORT’],
password: ENV[‘REDIS_DEVELOPMENT_PASS’],
db: ENV[‘REDIS_DEVELOPMENT_DBNUM’],
namespace: ‘app_name_cache’
}
config.session_store :redis_store, {
servers: {
host: ENV[‘REDIS_DEVELOPMENT_SERVER’],
port: ENV[‘REDIS_DEVELOPMENT_PORT’],
password: ENV[‘REDIS_DEVELOPMENT_PASS’],
db: ENV[‘REDIS_DEVELOPMENT_DBNUM’],
namespace: ‘app_name_session’
},
:expire_after => 1.month
}
config/initializers/production.rb
config.cache_store = :redis_store, {
host: ENV[‘REDIS_PRODUCTION_SERVER’],
port: ENV[‘REDIS_PRODUCTION_PORT’],
password: ENV[‘REDIS_PRODUCTION_PASS’],
db: ENV[‘REDIS_PRODUCTION_DBNUM’],
namespace: ‘app_name_cache’
}
config.session_store :redis_store, {
servers: {
host: ENV[‘REDIS_PRODUCTION_SERVER’],
port: ENV[‘REDIS_PRODUCTION_PORT’],
password: ENV[‘REDIS_PRODUCTION_PASS’],
db: ENV[‘REDIS_PRODUCTION_DBNUM’],
namespace: ‘app_name_session’
},
:expire_after => 1.month
}
コメントを残す