springboot配置redis集群
时间: 2023-05-08 11:58:55 浏览: 158
springboot根据配置实现单机与集群redis的切换
在进行Spring Boot项目开发时,我们常常需要使用Redis作为缓存服务,而Redis集群则是为了满足高可用性和可扩展性而设计的。本文以Spring Boot2.0为例,介绍如何配置Redis集群。
一、引入redisson和lettuce连接池
在pom.xml文件中,我们需要引入redisson和lettuce连接池两个依赖:
```
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.11.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
二、配置Redis集群
在application.yml中,添加Redis集群配置:
```
spring:
redis:
cluster:
nodes: redis://localhost:7000,redis://localhost:7001,redis://localhost:7002 # Redis集群节点
```
三、配置Redis连接池
在application.yml中,添加Redis连接池配置:
```
spring:
redis:
timeout: 2000 # 连接超时时间
lettuce:
pool:
max-active: 8 # 最大连接数
max-idle: 8 # 最大空闲连接数
min-idle: 0 # 最小空闲连接数
```
四、配置RedisTemplate
在application.java中,添加RedisTemplate的Bean:
```
@Bean
public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setDefaultSerializer(new StringRedisSerializer());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
```
五、测试Redis集群
在Controller中注入RedisTemplate,执行set和get操作进行测试。
```
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@RequestMapping("/set")
public String set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
return "set success";
}
@RequestMapping("/get")
public Object get(String key) {
return redisTemplate.opsForValue().get(key);
}
```
以上是关于如何在Spring Boot项目中配置Redis集群的方法。如果你的系统数据量较大,且并发量较高,那么Redis集群将是你应该考虑的一种选择。
阅读全文