RedisTemplate访问
1.连接哨兵
1.引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.配置
spring:
redis:
sentinel:
master: mymaster # 指定mater名称
nodes: # 指定redis-sentinel集群信息(因为主从节点都会有变化,哨兵不变,所以选哨兵)
- 192.168.135.130:7001
- 192.168.135.130:7002
- 192.168.135.130:7003
3.指定访问策略(配置读写分离)
@Bean
public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
/* return new LettuceClientConfigurationBuilderCustomizer() {
@Override
public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {
clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
}
};*/
}
这里的ReadFrom是配置Redis的读取策略,是一个枚举,包括下面选择:
- MASTER:从主节点读取
- MASTER PREFERRED:优先从master节点读取,master不可用才读取replica
- REPLICA:从slave (replica) 节点读取
- REPLICA PREFERRED:优先从slave (replica)节点读取,所有的slave都不可用才读取master
2.访问分片集群
只需要在哨兵的基础上更改配置文件即可
spring:
redis:
cluseter:
master: mymaster # 指定mater名称
nodes: # 这里是集群地址
- 192.168.135.130:7001
- 192.168.135.130:7002
- 192.168.135.130:7003
- 192.168.135.130:7004