介绍
:::tips 在Sentinel集群监管下的Redis主从集群,其节点会因为自动故障转移而发生变化,Redis的客户端必须感知这种变化,及时更新连接信息,Spring的RedisTemplate底层利用lettuce实现了节点的感知和自动切换 :::
添加配置
:::tips 在引入了SpringDataRedis依赖的项目中的配置文件里面添加Sentinel集群的信息 :::
spring:
redis:
sentinel:
master: mymaster
nodes:
- Sentinl服务的IP1
- Sentinl服务的IP2
- Sentinl服务的IP3
配置读写分离
:::tips 在引入了SpringDataRedis依赖的项目中的配置类里面添加一个Bean,用来配置读写分离 :::
@Configuration
public class XxxConfig{
//配置Redis读写分离
@Bean
public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
}
}
:::tips 读写策略:
- MASTER:从主节点读取
- MASTER_PREFERRED:优先从master节点读取,master不可用才读取slave
- REPLICA:从slave节点读取
- REPLICA _PREFERRED:优先从slave节点读取,所有的slave都不可用才读取master :::