8

異なるノード上の2つのアプリケーション間でセッションを共有したい。ただし、CookieとRedisのセッションストアの違いは何であるか混乱しています。たとえば、Cookieセッションは次のようになります。

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

セッションストアであるRedisでは、次のようになります。

rack:session:eb23c0a055e9e6de3b8ad51efd9g6260d647b2e61326e35f5ff59cd490bfb405"

ただし、これらのセッションを共有する方法がわかりません。Cookieのアプローチでは、リクエストにセッションの状態が含まれますが、Redisのセッションが2つのアプリケーションの状態と実際にどのように一致するかがわかりません。2つのラックアプリ間でRedis/共有セッション状態を使用する方法についてアドバイスはありますか?

4

1 に答える 1

25

Redisセッションストアは引き続きCookieを使用してセッションIDクライアント側を追跡します。違いは、セッションで保持する実際のデータが保存される場所です。Cookieストアでは、Cookieに詰め込まれ、リクエストごとに送受信されます。redis-storeを使用すると、セッションIDのみがCookieに渡され、実際のセッションデータはCookieのセッションIDを使用してRedisから取得されます。これは、さまざまなセッションストアとのさまざまなトレードオフの優れた説明です。

共有セッションは、CookieとRedisの両方のセッションストアで機能するように作成される場合があります。詳細については、次の2つの質問を確認してください。

于 2013-01-16T01:54:42.650 に答える