SpringBoot集成Redis哨兵
引入Redis的maven依赖
<!-- Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
配置信息
spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=ip1:port1,ip2:port2,ip3:port3
spring.redis.password=${password}
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.min-idle=5
spring.redis.lettuce.pool.max-wait=10000ms
配置项说明
- max-active:连接池中最大活跃连接数(默认值为8)。当连接数达到最大活跃连接数时,新的请求将会等待,直到有可用的连接为止。
- max-idle:连接池中最大空闲连接数(默认值为8)。当空闲连接数超过最大空闲连接数时,多余的空闲连接将被释放。
- min-idle:连接池中最小空闲连接数(默认值为0)。连接池中保持的最小空闲连接数,当请求连接时,如果空闲连接数不足,则会创建新的连接。
- max-wait:连接池中获取连接的最大等待时间(默认-1,表示无限等待)。当连接池中的连接都被占用且达到最大活跃连接数时,新的请求会等待一段时间,如果超过最大等待时间,则会抛出异常。
- test-on-create:在创建新的连接时,是否进行连接的测试验证(默认值为false)。如果设置为true,则在创建连接的时候会执行一次测试命令,确保连接可用。
- test-on-borrow:在从连接池中借用连接时,是否进行连接的测试验证(默认值为false)。如果设置为true,则在从连接池中获取连接的时候会执行一次测试命令,确保连接可用。
- test-on-return:在归还连接到连接池时,是否进行连接的测试验证(默认值为false)。如果设置为true,则在归还连接到连接池的时候会执行一次测试命令,确保连接可用。
- test-while-idle:在连接空闲一段时间后,是否进行连接的测试验证(默认值为true)。如果设置为true,则连接空闲一段时间后会执行一次测试命令,确保连接可用。
使用RedisTemplate执行操作
@Autowired
private RedisTemplate<String, Object> redisTemplate;
RedisTemplate方法说明
- opsForValue:返回一个用于操作String类型的ValueOperations对象,可以对Redis中的字符串键值对进行操作
- opsForHash:返回一个用于操作Hash类型的HashOperations对象,可以对Redis中的哈希数据结构进行操作
- opsForList:返回一个用于操作List类型的ListOperations对象,可以对Redis中的列表数据结构进行操作
- opsForSet:返回一个用于操作Sorted Set类型的ZSetOperations对象,可以对Redis中的有序集合数据结构进行操作
- opsForZSet:返回一个用于操作Sorted Set类型的ZSetOperations对象,可以对Redis中的有序集合数据结构进行操作
- execute:用于执行自定义的Redis操作,可以通过实现RedisCallback接口来自定义要执行的操作