【问题标题】:Using `Rack::Session::Pool` over `Rack::Session::Cookie`在 `Rack::Session::Cookie` 上使用 `Rack::Session::Pool`
【发布时间】:2012-11-14 11:14:05
【问题描述】:

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

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

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

那么:选择其中一个的含义/原因是什么? @pool 是什么?为什么Pool 需要暴露与Cookie 不同的公共接口?为什么文档这么少?

【问题讨论】:

    标签: ruby session cookies rack pool


    【解决方案1】:

    你是对的,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

    【讨论】:

    猜你喜欢
    • 2011-03-21
    • 2013-10-12
    • 2010-10-31
    • 1970-01-01
    • 2016-03-06
    • 2013-09-06
    • 2013-08-05
    • 2010-12-07
    • 2011-05-14
    相关资源
    最近更新 更多