在Rails中,存储session
的默认设置是使用cookie_store
。
Application.config.session_store :cookie_store, key: '_myapp_session'
但有时,session
存储在数据库中,如Redis。
Application.config.session_store(
:redis_store,
servers: config.redis_server,
key: '_myapp_sessions',
)
我们什么时候应该使用cookie商店?什么时候应该使用数据库?
答案 0 :(得分:1)
当您需要在会话中存储超过 4KB 的数据时。
当您需要对到期会话进行更多控制时。这是您可能需要这种控制的两个示例:
secret_key_base
以使cookie_store
会话无效。created_at
属性而不是使用{ {1}}会话,因为每次请求都会重新创建该会话。答案 1 :(得分:0)
如果在集群(多个服务器)环境或会话数据上运行的rails应用程序超过4KB(cookie存储限制为4KB内存),则使用Redis或任何其他数据库。