Rails 的默认会话存储是cookie_store. 这使得会话存储在客户端(如果我错了,请纠正我)。
我想更改此默认行为,以便可以将会话存储到 Redis 数据库中。我在 Internet 上找到的帖子/文章建议设置一个缓存存储以使用redis_cache_store,然后为 session_store 使用cache_store.
据我所知,这意味着缓存和会话都将使用相同的数据库(实例)。我不想要那个。我希望会话和缓存都使用不同的 Redis 实例,因此可以相应地配置它们。
我尝试创建一个config/initializers/session_store.rb包含以下内容的初始化文件:
Rails.application.config.session_store :redis_cache_store, key: '_my_app_session'
Run Code Online (Sandbox Code Playgroud)
但这不起作用。它给了我以下错误:
/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 )