在Spring Boot中使用Redis集群,需要进行以下配置:
- 在pom.xml文件中添加Redis和Lettuce依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
- 在application.properties文件中配置Redis集群信息:
spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6380
spring.redis.password=
- 创建RedisConnectionFactory实例,并将其注入到RedisTemplate中:
@Configuration
public class RedisConfig {
@Value("${spring.redis.cluster.nodes}")
private String clusterNodes;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
List<String> nodes = Arrays.asList(clusterNodes.split(","));
List<RedisNode> redisNodes = new ArrayList<>();
for (String node : nodes) {
String[] parts = node.split(":");
redisNodes.add(new RedisNode(parts[0], Integer.parseInt(parts[1])));
}
RedisClusterConfiguration redisConfig = new RedisClusterConfiguration();
redisConfig.setClusterNodes(redisNodes);
return new LettuceConnectionFactory(redisConfig);
}
@Bean
public RedisTemplate<?, ?> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<?, ?> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
return template;
}
}
这里使用了Lettuce作为连接池,创建了一个基于Spring的单机模式的连接工厂,根据配置创建一个基于cluster模式的配置对象,最后将其注入到RedisTemplate中。
- 在代码中使用RedisTemplate操作Redis:
@Autowired
private RedisTemplate<String, String> redisTemplate;
public void save(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String get(String key) {
return redisTemplate.opsForValue().get(key);
}
以上就是在Spring Boot中配置Redis集群的方法。