redis锁失效问题

2020-09-17  本文已影响0人  金融测试民工

问题说明:

    锁的原理大家都清楚,但是开发过程中可能出现遗漏。如下情况就是同一redis锁key,连续3次调用redis分布式锁存在失效的可能。

具体操作:

    同一redis锁key,同一时间连续3次调用请求,第一次请求拿取锁后处理中,第二次请求拿不到锁执行return,但是会执行finally导致锁释放,从而释放了锁。

    如果第一次还未处理完成,第三次请求就会出现再次获取锁的情况。

修复方案: 

1:将获取锁的tryLock2方法前置,放到try{} catch{} finally{} 代码块之前获取锁。

 2:可以设置解锁条件标识,只有获取到锁的请求才能在finally解锁。

上一篇 下一篇

猜你喜欢

热点阅读