RedisTemplate哨兵模式
1.在pom文件中引入redis的starter依赖:
<dependency>
<groupId>org.springframwork.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.然后在配置文件application.yml中指定sentinel相关信息:
spring:
redis:
sentinel:
master: mymaster
nodes:
- 192.168.150.101:27001
- 192.168.150.101:27002
- 192.168.150.101:27003
3.配置主从读写分离:
@Bean
public LettuceClientConfigurationBuilderCustomizer configurationBuilderCustomizer(){
return configBuilder -> configBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
}
这里的ReadFrom是配置Redis的读取策略,是一个枚举,包括下面选择:
* MASTER:从主节点读取
* MASTER_PREFERRED:优先从master节点读取,master不可用才读取replica
* REPLICA:从slave(replica)节点读取
* REPLICA_PREFERRED:优先从slave(replica)节点读取,所有的slave都不可用才读取master
4. Controller 注入redisTemplate:
@Autotired
private StringRedisTemplate redisTemplate;
@GetMapping("/get/{key}")
public String hi(@PathVariable String key){
return redisTemplate.opsForValue().get(key);
}
@GetMapping("/set/{key}/{value}")
public String hi(@PathVariable String key, @PathVariable String value){
redisTemplate.opsForValue().set(key, value);
return "seccess";
}