Rails的默认会话存储方式是cookie_store
,这意味着会话会被存储在客户端(如果我有误请纠正)。
我希望更改此默认行为,以便将会话存储到Redis数据库中。网上发现的文章建议设置缓存存储使用redis_cache_store
,然后对于会话存储,使用cache_store
。
据我所知,这意味着缓存和会话都将使用同一数据库实例。但我想要的是,会话和缓存都使用不同的Redis实例,这样它们可以分别进行配置。
我尝试创建一个名为config/initializers/session_store.rb
的初始化文件,并添加以下内容:
Rails.application.config.session_store :redis_cache_store, key: '_my_app_session'
但这不起作用。它会给我以下错误:
/application/configuration.rb:324:in `const_get': 未初始化常量ActionDispatch::Session::RedisCacheStore (NameError)
我还发现了这个gem:https://github.com/redis-store/redis-store
,但我不确定使用这个gem是否有问题,因为Rails已经内置了Redis缓存库(https://github.com/rails/rails/pull/31134)。