介绍

:::tips 在Sentinel集群监管下的Redis主从集群,其节点会因为自动故障转移而发生变化,Redis的客户端必须感知这种变化,及时更新连接信息,Spring的RedisTemplate底层利用lettuce实现了节点的感知和自动切换 :::

添加配置

:::tips 在引入了SpringDataRedis依赖的项目中的配置文件里面添加Sentinel集群的信息 :::

  1. spring:
  2. redis:
  3. sentinel:
  4. master: mymaster
  5. nodes:
  6. - Sentinl服务的IP1
  7. - Sentinl服务的IP2
  8. - Sentinl服务的IP3

配置读写分离

:::tips 在引入了SpringDataRedis依赖的项目中的配置类里面添加一个Bean,用来配置读写分离 :::

  1. @Configuration
  2. public class XxxConfig{
  3. //配置Redis读写分离
  4. @Bean
  5. public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
  6. return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
  7. }
  8. }

:::tips 读写策略:

  • MASTER:从主节点读取
  • MASTER_PREFERRED:优先从master节点读取,master不可用才读取slave
  • REPLICA:从slave节点读取
  • REPLICA _PREFERRED:优先从slave节点读取,所有的slave都不可用才读取master :::