springboot配置两套redis 集群
时间: 2023-11-23 13:52:26 浏览: 42
可以通过在配置文件中分别配置两个 RedisTemplate 来实现。具体步骤如下:
1. 在配置文件中分别配置两个 Redis 集群的连接信息,例如:
```
spring.redis.cluster.nodes1=127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381
spring.redis.cluster.nodes2=127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384
```
2. 创建两个 RedisConnectionFactory,分别连接两个 Redis 集群,例如:
```
@Bean(name = "redisConnectionFactory1")
public RedisConnectionFactory redisConnectionFactory1() {
RedisClusterConfiguration config = new RedisClusterConfiguration();
config.setClusterNodes(Arrays.asList(new RedisNode("127.0.0.1", 6379),
new RedisNode("127.0.0.1", 6380),
new RedisNode("127.0.0.1", 6381)));
return new JedisConnectionFactory(config);
}
@Bean(name = "redisConnectionFactory2")
public RedisConnectionFactory redisConnectionFactory2() {
RedisClusterConfiguration config = new RedisClusterConfiguration();
config.setClusterNodes(Arrays.asList(new RedisNode("127.0.0.1", 6382),
new RedisNode("127.0.0.1", 6383),
new RedisNode("127.0.0.1", 6384)));
return new JedisConnectionFactory(config);
}
```
3. 创建两个 RedisTemplate,分别使用不同的 RedisConnectionFactory,例如:
```
@Bean(name = "redisTemplate1")
public RedisTemplate<String, Object> redisTemplate1(@Qualifier("redisConnectionFactory1") RedisConnectionFactory redisConnectionFactory1) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory1);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
@Bean(name = "redisTemplate2")
public RedisTemplate<String, Object> redisTemplate2(@Qualifier("redisConnectionFactory2") RedisConnectionFactory redisConnectionFactory2) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory2);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
```