redis
redis实现分布式锁如何合理的控制锁的有效时长?
❎️ 根据业务逻辑预估过期时间(不太靠谱) ✅ 给锁续期,新开一个线程,对主线程进行监控,如果1/3时间未执行完毕,重置锁的超时时长。 ✔ redission设置超时时间,不会引入看门狗,刷新锁时间,不设置超时时间会引入看门狗; 启用看门狗:lock.tryLock(10, TimeUnit.SECONDS); 不用看门狗:lock.tryLock(10, 30, TimeUnit.SECONDS);
✔ 在redisson的分布式锁中,提供了一个WatchDog(看门狗),一个线程获取锁成功以后WatchDog会给持有锁的线程续期(默认是每隔10秒续期一次)