笔记来源: Java工程师面试突击专栏 https://apppukyptrl1086.pc.xiaoe-tech.com/detail/p_5d3114935b4d7_CEcL8yMS/6
文章目录
RedLock算法实现分布式锁思路
- RedLock算法实现分布式锁思路
场景: 有一个redis cluster 集群, 五个Redis的集群, 每一个master 都有一个slave
- 获取当前的时间戳, 单位毫秒, 用于计算创建锁的时间
- 某个系统尝试在每个master node上都去上锁 , 设置的过期时间较短, 一般十几毫秒
- 尝试在大多数节点都要建立一个锁, 比如5个节点 ,就是要3个节点建立锁成功 (5/2)+1
- 客户端计算建立好锁的时间 , 如果建立锁的时间小于超时时间, 那么就算建立锁成功了
- 如果建立锁失败了, 就依次删除各个阶段已经建立的锁
- 只要一个系统建立了一个把分布式锁, 其他系统就得不断轮询去尝试获取锁.
该算法 主要是为了避免单个节点宕机导致的分布式锁失效.