Memcached 分布式锁
Memcached 提供了原子性操作命令 add,才能 add 成功,线程获取到锁。key 已存在的情况下,则 add 失败,获取锁也失败。
Redis 分布式锁
Redis 的 setnx 命令为原子性操作命令。只有在 key 不存在的情况下,才能 set 成功。和 Memcached 的 add 方法比较类似。
ZooKeeper 分布式锁
利用 ZooKeeper 的顺序临时节点,来实现分布式锁和等待队列。
Chubby 实现分布式锁
Chubby 底层利用了 Paxos 一致性算法,实现粗粒度分布式锁服务。