在`Rack :: Session :: Cookie`上使用`Rack :: Session :: Pool`

pje*_*pje 14 ruby cookies session rack pool

Rack :: Session :: PoolRack :: Session :: Cookie的不同用例有哪些?

据我所知(如果我错了,请纠正我):

  • Cookie所有会话密钥:值对直接存储在cookie中(编组)
  • Pool 只在cookie中存储一个id,并在其中维护会话哈希的其余部分 @pool

那么:选择一个而不是另一个的含义/原因是什么?什么@pool?为什么Pool需要公开不同的公共接口Cookie?为什么文档如此缺乏?

小智 14

你是对的,Session::Cookie在cookie中编组和存储会话.

Session::Pool 而是将会话保存在内存中.

Pool 有一些优点:

- faster, no marshaling needed 
- you can keep any objects with it(read ones that can not be marshaled)
Run Code Online (Sandbox Code Playgroud)

但是当您重新启动应用程序时,所有会话都将丢失

随着Cookie相反,你将在编组的价格重启持久会话.

替代方案 - Session :: Memcache,Session :: Mongo