Redis Spring配置集群
在Spring中配置Redis集群,你可以使用RedisClusterConfiguration
类来设置集群的节点和其他属性。以下是一个配置Redis集群的示例:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.HashSet;
import java.util.Set;
@Configuration
public class RedisClusterConfig {
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
RedisClusterConfiguration clusterConfig = new RedisClusterConfiguration();
clusterConfig.setClusterNodes(new HashSet<>(Set.of(
new RedisNode("127.0.0.1", 7000),
new RedisNode("127.0.0.1", 7001),
new RedisNode("127.0.0.1", 7002))));
clusterConfig.setMaxRedirects(3);
return new LettuceConnectionFactory(clusterConfig);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory());
return template;
}
}
在这个配置中,我们定义了一个RedisClusterConfiguration
实例,并通过setClusterNodes
方法设置了集群节点的信息。RedisNode
是RedisClusterConfiguration
中的一个内部类,代表单个节点。Set.of
是Java 9及以上版本的新特性,用于创建不可变集合。
maxRedirects
属性设置了在集群环境中执行命令时,如果因为节点迁移导向新节点的最大重定向次数。
redisConnectionFactory
方法返回一个LettuceConnectionFactory
实例,它使用了我们配置好的集群配置。
redisTemplate
方法返回一个RedisTemplate
实例,它使用了刚才定义的LettuceConnectionFactory
。这个模板可以用来操作Redis集群。
评论已关闭