2012-11-26 150 views
14

Rack::Session::PoolRack::Session::Cookie有什么不同的用例?在Rack :: Session :: Cookie上使用`Rack :: Session :: Pool`

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

  • Cookie所有会话密钥:直接值对的cookie(整理)内
  • Pool只存储一个id在cookie中,并且保持会话中其余部分的散列在@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) 

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

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

选择 - Session::MemcacheSession::Mongo

+1

架::会议::莫尼塔:http://www.rubydoc.info/github/minad/moneta/Rack/Session/Moneta还提供了一个抽象的会话存储接口一个各种各样的钥匙/价值商店 –

相关问题