基于Redis的Redisson分布式可重入锁 RLock
Java对象实现了 java.util.concurrent.locks.Lock 接口。
如果负责储存这个分布式锁的Redisson节点宕机以后,而且这个锁正好处于锁住的状态 时,这个锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗, 它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。
默认情况下,看门狗检查锁的超时时间 是30秒钟,也可以通过修改 Config.lockWatchdogTimeout 来另行指定。 RLock 对象完全符合Java的Lock规范。也就是说只有拥有锁的进程才能解锁,其他进程解锁则会抛出 IllegalMonitorStateException 错误。 另外Redisson还通过加锁的方法提供了 leaseTime 的参数来指定加锁的时间。超过这个时间后锁便自 动解开了。