官方配置
# common spring boot settings
spring.redis.database=
spring.redis.host=
spring.redis.port=
spring.redis.password=
spring.redis.ssl=
spring.redis.timeout=
spring.redis.cluster.nodes=
spring.redis.sentinel.master=
spring.redis.sentinel.nodes=
# Redisson settings
#path to config - redisson.yaml
spring.redis.redisson.config=classpath:redisson.yaml
以上是官方的配置:
开始整合
注:redis集群创建相关请自行百度
1 引入starter
测试所用版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>
2 在yaml中完成自定义属性配置
使用jedis连接池:
spring:
redis:
##redis 单机环境配置 # 主从配置与单机相同
# host: 127.0.0.1
# port: 6379
password:
database: 0 # 连接哪个数据库
ssl: false #启用SSL终端识别
##redis 集群环境配置
cluster:
nodes: 127.0.0.1:6601,127.0.0.1:6602,127.0.0.1:6603,127.0.0.1:6701,127.0.0.1:6702,127.0.0.0:6703
commandTimeout: 5000 #设置命令的执行时间,如果超过这个时间,则报错;
max-redirects: 3 # 获取失败 最大重定向次数
# sentinel: #配置哨兵
# nodes: # 节点
# master: # 主
jedis:
pool:
max-active: 300 #连接池最大连接数
max-wait: -1 #连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 100 #最大空闲连接
min-idle: 20 #连接池的最小空闲连接
timeout: 6000s #连接超时时间
//注入配置信息:
@Configuration
public class RedisConfig {
@Autowired
private RedisConnectionFactory factory;
@Bean
public RedisTemplate redisTemplate() {
RedisTemplate redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(factory);
return redisTemplate;
}
}
使用lettuce连接池:
lettuce:
pool:
max-active: 1000 #连接池最大连接数(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
@Configuration
@AutoConfigureAfter(RedisAutoConfiguration.class)
public class RedisConfig {
@Bean
public RedisTemplate redisCacheTemplate(LettuceConnectionFactory redisConnectionFactory) {
RedisTemplate template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
lettuce是spring data redis默认的连接池,推荐使用这种方式。
结束