redis怎么解决分布式锁

setnx 如果当前有这个key就返回0没有就设置成功返回1

expire给指定key设置过期时间,如果不设置过期时间的话,当执行完一遍的时候,别的线程就永远进不来了.

客户端代码实现,但是这样的话还是会有问题,如果执行完设置key后代码宕掉了,超时时间没设置上,那么这个锁就会一直锁的

时间单位有两种  ex为秒  px 为毫秒 就是下图中ex的位置

nx的位置可以填两种  ex为key存不存在时才能进行操作,存在的时候返回nul   xx为key存在时才能进行操作,不存在时返回nil   成功时返回ok

这种方式就是把设置超时时间和设置key合并到一块执行了,就不存在上面那种问题了

猜你喜欢

转载自blog.csdn.net/kxj19980524/article/details/88426654
今日推荐