带大家简单了解下Redisson的看门狗机制,这个面试中也比较常见。
WatchDog(看门狗)机制
Redisson看门狗机制是用于解决在业务运行时间大于锁失效时间的情况,即自动续期,当某用户执行抢占锁执行需要40秒,而锁有效期为30秒,到期后锁就有可能被其他用户抢占,这个时候看门狗机制就可以帮其自动续期至执行结束。
开启WatchDog(看门狗)
引入maven
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.17.6</version>
</dependency>
先来看下redisson的简单使用(开门狗机制未开启时)
@RequestMapping("/watch_dog")
public String watchDog(){
// 简单配置RedissonClient
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedissonClient redisson = Redisson.create(config);
// 获取锁
RLock lock = redisson.getLock("anyLock");
try {
// 尝试获取锁,最多等待3秒,锁定之后3秒自动解锁(锁释放程序照跑)
boolean isLocked = lock.tryLock(3,