一、配置准备
哨兵模式安装参考我之前的博客
链接地址
1、Pom依赖
<dependencies>
<!--redis设置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--redis连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>
<!--lombok工具免生成get,set-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</dependencies>
2、application
server:
port: 8000
spring:
redis:
password: 123456
timeout: 6000ms
lettuce:
pool:
max-active: 8
max-wait: -1ms
max-idle: 8
min-idle: 0
#sentinel哨兵配置
sentinel:
master: mymaster
nodes: 192.168.2.133:26379,192.168.2.133:26380,192.168.2.133:26381
3、实体类
@Data
@ToString
public class User implements Serializable {
private Integer id;
private String name;
}
4、测试代码
@RestController
public class RedisComponent {
@Autowired
//操作字符串的template,StringRedisTemplate是RedisTemplate的一个子集
private StringRedisTemplate stringRedisTemplate;
@Autowired
// RedisTemplate,可以进行所有的操作
private RedisTemplate<Object, Object> redisTemplate;
@RequestMapping("/set")
public void set(@RequestParam("key") String key, @RequestParam("value") String value) {
ValueOperations<String, String> ops = this.stringRedisTemplate.opsForValue();
boolean bExistent = this.stringRedisTemplate.hasKey(key);
if (bExistent) {
System.out.println("this key is bExistent!");
} else {
ops.set(key, value);
}
}
@RequestMapping("/get")
public String get(@RequestParam("key") String key) {
return this.stringRedisTemplate.opsForValue().get(key);
}
@RequestMapping("/del")
public String del(@RequestParam("key") String key) {
this.stringRedisTemplate.delete(key);
return "删除缓存";
}
@RequestMapping("/user_set")
public String sentinelSet(@RequestBody User user) {
Integer key = null;
key = user.getId();
System.out.println(key);
redisTemplate.opsForValue().set(key, user);
return "存入缓存成功";
}
@RequestMapping("/user_get")
public User sentinelGet(@RequestParam("user_id") Integer UserId) {
return (User) redisTemplate.opsForValue().get(UserId);
}
}