Redisson实现分布式锁
如果我们通过lease Time(rLock.lock(20, TimeUnit.SECONDS))的参数指定了加锁的时间,那么Redisson就不会再进行续期了,锁到达过期时间会自动释放锁,无需unlock手动解锁,如果出现锁的误删除情况时,Redisson会抛出异常。未设置过期时间的,Redisson加锁会有一个默认的过期时间为30s,线程获取到锁后,用了Lua来保证原子性,会开启一个定时任务,每隔10s看门狗会执行一次定时任务,若锁还在,重新将过期时间设置成30s。防止了库存出现负数的情况。
原创
2024-04-25 18:09:35 ·
1955 阅读 ·
1 评论