我想在不同节点上的2个应用程序之间共享会话;但是,我很困惑Cookie和Redis会话存储之间的区别是什么;例如Cookie会话可能如下所示:
rack.session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiJFN2YxZDMxMGE5YTNhZjc2NGM1NDBk%0AMzdiODQ0MjcyMzk5MzAxY2YyYzdhNDMwOWVkMzhiNWVlMmY2N2QwYzExNg%3D%3D%0A--ec4ec7b5a807c806e02e2811f4a11d05877a7698
在Redis中,一个会话存储可能看起来像这样:
rack:session:eb23c0a055e9e6de3b8ad51efd9g6260d647b2e61326e35f5ff59cd490bfb405"
但是,我很困惑如何共享这些会话。在cookie方法中,请求包含会话的状态,而我看不到Redis中的会话实际上如何匹配到2个应用程序之间的状态。有什么建议如何在2个机架应用程序之间使用Redis /共享会话状态?
Redis会话存储区仍使用cookie来跟踪会话ID客户端。区别在于存储在会话中的实际数据存储在哪里。使用cookie存储区,将其填充到cookie中,并随每个请求来回发送。使用redis存储,仅在cookie中传递会话ID,并使用cookie中的会话id从Redis检索实际的会话数据。这是对不同会话存储的各种权衡的一个很好的描述。