分布式锁(Redis实现、Zookeeper实现)
一. Redis实现分布式锁
加锁
虽然可以使用setnx(key,1),当一个线程执行setnx返回1,说明key原本不存在,该线程成功得到了锁;当一个线程执行setnx返回0,说明key已经存在,该线程抢锁失败。
但这样就导致锁就没有过期时间,别的线程再也无法获得锁。
所以可以采用set(key,1,30,NX)
解锁
虽然可以使用del(key)来解锁,但会存在误删情况。即一个已获得...
原创
2020-04-07 23:21:06 ·
107 阅读 ·
0 评论