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

pos*_*eid 6 cookies rack session-state session-cookies redis

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

rack.session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiJFN2YxZDMxMGE5YTNhZjc2NGM1NDBk%0AMzdiODQ0MjcyMzk5MzAxY2YyYzdhNDMwOWVkMzhiNWVlMmY2N2QwYzExNg%3D%3D%0A--ec4ec7b5a807c806e02e2811f4a11d05877a7698
Run Code Online (Sandbox Code Playgroud)

在Redis中,会话存储可能如下所示:

rack:session:eb23c0a055e9e6de3b8ad51efd9g6260d647b2e61326e35f5ff59cd490bfb405"
Run Code Online (Sandbox Code Playgroud)

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

fri*_*ism 16

Redis会话存储仍然使用cookie来跟踪会话ID客户端.区别在于您存储在会话中的实际数据.通过cookie存储,它被填充到cookie中并随每个请求来回发送.使用redis-store,只在cookie中传递会话ID,并使用cookie中的会话ID从Redis中检索实际的会话数据.以下是对不同会话商店进行各种权衡的绝佳描述.

可以使用共享会话来同时使用Cookie和Redis会话存储.查看这两个问题以获取详细信息: