请问set命令为什么不可以做分布式锁
来源:14-3 分布式锁双重防死锁演进
offeroffer
2019-07-17
setnx命令的expire设置过期时间和设置锁不是原子操作,set可以进行原子操作,请问为什么不用set呢?
写回答
1回答
-
geelylucky
2019-07-17
同学,因为使用set的话,是没法判断当前key是否存在的,setnx的语意就是SET if Not exists,不存在就set,使用set是没法避免这个判断前提的,这样的话,就会存在一个并发问题,导致的问题更多。setnx虽然设置过期时间没发做到原子操作,但是咱们可以把过期时间作为value,这样就可以不需要expire,通过对比value和当前时间就可以判断是否过期。
012019-11-16
相似问题