分布式锁的实现有哪些
Memcached分布式锁
利用Memcached的add命令。此命令是原子性操作,只有在key不存在的情况下,才能add成功,也意味着线程得到了锁。Redis分布式锁
和Memcached的方式类似,利用Redis的setnx命令。此命令同样是原子性的操作(被set(key,nx,px,expire)替代),
只有在key不存在的情况下,才能set成功。Zookeeper分布式锁
利用Zookeeper的顺序临时节点,来实现分布式锁和等待对列。Zookeeper设计的初衷,也是为了实现分布式锁服务的。Chubby
Google公司实现的粗力度分布式锁服务,底层利用了Paxos一致性算法。
Redis分布式锁的实现
1 |
|