【发布时间】:2020-03-28 07:35:13
【问题描述】:
我正在使用 redis 在我的 Spring Boot 应用程序中存储会话。我也在使用 Spring Session 库来实现这一点。我有两个不同的 redis 实例,即US redis 和EU redis。一旦有人进入我的应用程序(当然是在登录之后),我想将他们的会话存储在US redis 和EU redis 服务器中。请注意,这两个 redis 实例都是主实例,不在任何主从设置中。这就是我到目前为止的春季设置。
@EnableRedisHttpSession
@Configuration
public class RedisConfig{
}
注意:为简洁起见,删除了其他安全代码。
根据@EnableRedisHttpSession 文档,我们需要添加一个RedisConnectionFactory 实例,但默认情况下Spring Boot 会这样做。
所以现在,一旦用户登录,他们的会话存储在US redis(我在application.yml添加了美国redis相关信息)。
但是,每当会话存储在US redis 中时,我想在EU redis 服务器中复制相同的会话。我怎样才能做到这一点?我需要创建另一个RedisConnectionFactory bean 并手动保存吗?如果手动保存,如何保存?
注意:此用例可能未遵循最佳设计实践(即我们将用户会话存储在多个位置)。但是我确实理解这一点,但我确实有一个用例。
【问题讨论】:
标签: java spring spring-boot redis spring-session