最近,我们开始使用spring redis session作为我们的会话管理器。我们的应用程序已经在生产环境中运行了8-10个月。有一个移动的应用程序使用此后端。
当我将会话存储库更改为spring session时,移动的应用程序中所有已登录的用户都将自动注销。然后他们将不得不再次登录。
是否有办法将所有已记录的用户会话迁移到Redis示例?
最近,我们开始使用spring redis session作为我们的会话管理器。我们的应用程序已经在生产环境中运行了8-10个月。有一个移动的应用程序使用此后端。
当我将会话存储库更改为spring session时,移动的应用程序中所有已登录的用户都将自动注销。然后他们将不得不再次登录。
是否有办法将所有已记录的用户会话迁移到Redis示例?
1条答案
按热度按时间m0rkklqb1#
如果我理解正确的话,对实时迁移现有连接的答案是否定的,因为你正在改变后端连接。任何新用户都需要使用新的连接类示例化到应用程序的连接。根据我们在这里讨论的用户数量,可能会允许当前连接的用户在httpsession上运行,而所有新连接都在spring redis session下运行。这将涉及到Map所有现有的连接用户,使其留在httpsession上,直到他们的连接耗尽或断开连接,并管理拆分,以便新用户使用redis会话应用服务器。
如果上面的情况不是这样,并且您正在寻找Spring Redis Session的使用指南,那么:
首先,你需要有数据redis的spring session模块,可以在这里找到:https://github.com/spring-projects/spring-session
然后,您需要添加以下Spring配置:
@EnableRedisHttpSession annotation创建了一个名为springSessionRepositoryFilter的Spring Bean,它实现了Filter。filter负责替换Spring Session支持的HttpSession实现。在这个例子中,Spring Session由Redis支持。我们创建一个RedisConnectionFactory,将Spring Session连接到Redis Server。我们将连接配置为在默认端口(6379)上连接到localhost。有关配置Spring Data Redis的更多信息,请参阅参考文档。
然后创建一个redis连接工厂:
**来源:**https:docs.spring.io/spring-session/docs/current-SNAPSHOT/reference/html5/#httpsession-redis
https://docs.spring.io/spring-data/data-redis/docs/2.2.0.BUILD-SNAPSHOT/reference/html/#reference