15

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

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

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

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

4

1 回答 1

15

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

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

Pool有一些优点:

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

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

Cookie相反,您将以编组的价格获得重新启动的持久会话。

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

于 2012-11-26T22:25:42.540 回答