【发布时间】:2014-09-28 23:02:41
【问题描述】:
我刚刚从使用 cookie 作为会话存储切换到 redis。 配置如下:
# Gemfile
gem 'redis-rails', group: :production
# config/initializers/session_store.rb
if ENV['RAILS_ENV'] == 'production'
Rails.application.config.session_store :redis_store, redis_server: ENV['REDISCLOUD_URL'], expires_in: 60.minutes
else
Rails.application.config.session_store :cookie_store, key: '_marketplace_session'
end
但是,我记得在设置独角兽时,我必须注意外部连接。 这是 Resque 的一个例子
before_fork do |server, worker|
# If you are using Redis but not Resque, change this
if defined?(Resque)
Resque.redis.quit
Rails.logger.info('Disconnected from Redis')
end
end
after_fork do |server, worker|
# If you are using Redis but not Resque, change this
if defined?(Resque)
Resque.redis = ENV['<REDIS_URI>']
Rails.logger.info('Connected to Redis')
end
end
我是否还必须在 Unicorn 配置中从 Redis 断开并重新连接?我只使用 Redis 作为会话存储,没有别的。
感谢任何输入。
【问题讨论】:
标签: ruby-on-rails session redis