redis分布式锁设置过期时间问题
来源:4-4 如何实现分布式锁
慕沐1517900
2019-06-09
对redis分布式锁设置过期时间时,若设置的过期时间太短,从而导致应该在这段过期时间内完成的操作没有进行完,就将锁“释放”掉了,这种情况怎么办?
是不是只能靠尽可能延长过期时间来解决问题
写回答
1回答
-
同学好,其实我理解这个机制本身是不需要改变的,设置的过期时间应该要比实际执行的时间的峰值要长1-2倍,因为这个过期时间主要是为了防止服务器崩溃这种小概率事件而设定的,就是还没到结尾释放锁的时候程序挂了,此时锁就释放不了了,因此设置一个时间,这个时间可以很长,只要你程序执行完记得释放锁就好了。往往执行的时长需要经过压测得出,就是压测你需要加锁的方法,看看执行的平均时间以及最慢的时间是多少,之后再设置上足够长的过期时间。
10
相似问题