Cookie和Redis会话存储有什么区别?

时间:2013-01-15 21:48:06

标签: cookies redis session-cookies session-state rack

我想在不同节点上的2个应用程序之间共享会话;但是,我很困惑Cookie和Redis会话商店之间的区别;例如cookie会话可能如下所示:

rack.session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiJFN2YxZDMxMGE5YTNhZjc2NGM1NDBk%0AMzdiODQ0MjcyMzk5MzAxY2YyYzdhNDMwOWVkMzhiNWVlMmY2N2QwYzExNg%3D%3D%0A--ec4ec7b5a807c806e02e2811f4a11d05877a7698

在Redis中,会话商店可能如下所示:

rack:session:eb23c0a055e9e6de3b8ad51efd9g6260d647b2e61326e35f5ff59cd490bfb405"

但是,我很困惑如何分享这些会话。在cookie方法中,请求带有会话状态,而我无法看到Redis中的会话实际上与2个应用程序中的状态匹配。有关如何在2个机架应用程序中使用Redis / share会话状态的任何建议吗?

1 个答案:

答案 0 :(得分:15)

Redis会话商店仍然使用cookie来跟踪会话ID客户端。区别在于您存储在会话中的实际数据。通过cookie存储,它被填充到cookie中并随每个请求来回发送。使用redis-store,只在cookie中传递会话ID,并使用cookie中的会话ID从Redis中检索实际的会话数据。以下是各种trade-offs with different session stores的精彩描述。

可能会与Cookie和Redis会话商店一起使用共享会话。有关详细信息,请查看这两个问题: