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

配置项说明

  1. max-active:连接池中最大活跃连接数(默认值为8)。当连接数达到最大活跃连接数时,新的请求将会等待,直到有可用的连接为止。
  2. max-idle:连接池中最大空闲连接数(默认值为8)。当空闲连接数超过最大空闲连接数时,多余的空闲连接将被释放。
  3. min-idle:连接池中最小空闲连接数(默认值为0)。连接池中保持的最小空闲连接数,当请求连接时,如果空闲连接数不足,则会创建新的连接。
  4. max-wait:连接池中获取连接的最大等待时间(默认-1,表示无限等待)。当连接池中的连接都被占用且达到最大活跃连接数时,新的请求会等待一段时间,如果超过最大等待时间,则会抛出异常。
  5. test-on-create:在创建新的连接时,是否进行连接的测试验证(默认值为false)。如果设置为true,则在创建连接的时候会执行一次测试命令,确保连接可用。
  6. test-on-borrow:在从连接池中借用连接时,是否进行连接的测试验证(默认值为false)。如果设置为true,则在从连接池中获取连接的时候会执行一次测试命令,确保连接可用。
  7. test-on-return:在归还连接到连接池时,是否进行连接的测试验证(默认值为false)。如果设置为true,则在归还连接到连接池的时候会执行一次测试命令,确保连接可用。
  8. test-while-idle:在连接空闲一段时间后,是否进行连接的测试验证(默认值为true)。如果设置为true,则连接空闲一段时间后会执行一次测试命令,确保连接可用。

使用RedisTemplate执行操作

@Autowired
private RedisTemplate<String, Object> redisTemplate;

RedisTemplate方法说明

  1. opsForValue:返回一个用于操作String类型的ValueOperations对象,可以对Redis中的字符串键值对进行操作
  2. opsForHash:返回一个用于操作Hash类型的HashOperations对象,可以对Redis中的哈希数据结构进行操作
  3. opsForList:返回一个用于操作List类型的ListOperations对象,可以对Redis中的列表数据结构进行操作
  4. opsForSet:返回一个用于操作Sorted Set类型的ZSetOperations对象,可以对Redis中的有序集合数据结构进行操作
  5. opsForZSet:返回一个用于操作Sorted Set类型的ZSetOperations对象,可以对Redis中的有序集合数据结构进行操作
  6. execute:用于执行自定义的Redis操作,可以通过实现RedisCallback接口来自定义要执行的操作