Я хотел бы создать масштабируемость для своего проекта, и я немного запутался в том, как масштабировать данные пользовательских сессий. Я бы хотел полностью избежать использования локального хранилища.
Меня смущает ключ Redis; каким должен быть ключ?
Например, предположим, что наше приложение находится за балансировщиком нагрузки, и у нас работает 2 экземпляра.
Пользователь A входит в систему через экземпляр A, а затем закрывается браузер.
Пользователь A повторно открывает браузер и посещает приложение. На этот раз экземпляр B передает приложение пользователю A, но поскольку пользователь A вошел в систему через экземпляр A, экземпляр B не имеет данных сеанса для этого конкретного пользователя. Следовательно, экземпляр B должен получить доступ к Redis и проверить, входил ли когда-либо этот пользователь в систему.
Итак, что именно здесь представляет собой ключ Redis? Пользователи по электронной почте? Токен JWT?
Если это электронная почта пользователей, то мы должны хранить электронную почту пользователей в своем локальном хранилище, верно? Как еще мы можем получить электронную почту пользователей, не выполняя двойной вход вручную, что явно нехорошо.
Если в качестве ключа используется токен JWT, то как мы узнаем, какой токен предназначен для какого пользователя?