分布式锁-redission锁的MutiLock原理

5.5 分布式锁-redission锁的MutiLock原理

为了提高redis的可用性,我们会搭建集群或者主从,现在以主从为例

此时我们去写命令,写在主机上, 主机会将数据同步给从机,但是假设在主机还没有来得及把数据写入到从机去的时候,此时主机宕机,哨兵会发现主机宕机,并且选举一个slave变成master,而此时新的master中实际上并没有锁信息,此时锁信息就已经丢掉了。

为了解决这个问题,redission提出来了MutiLock锁,使用这把锁咱们就不使用主从了,每个节点的地位都是一样的, 这把锁加锁的逻辑需要写入到每一个主丛节点上,只有所有的服务器都写入成功,此时才是加锁成功,假设现在某个节点挂了,那么他去获得锁的时候,只要有一个节点拿不到,都不能算是加锁成功,就保证了加锁的可靠性。

那么MutiLock 加锁原理是什么呢?笔者画了一幅图来说明

当我们去设置了多个锁时,redission会将多个锁添加到一个集合中,然后用while循环去不停去尝试拿锁,但是会有一个总共的加锁时间,这个时间是用需要加锁的个数 * 1500ms ,假设有3个锁,那么时间就是4500ms,假设在这4500ms内,所有的锁都加锁成功, 那么此时才算是加锁成功,如果在4500ms有线程加锁失败,则会再次去进行重试.

相关推荐
Lansonli14 分钟前
大数据Spark(七十二):Transformation转换算子repartition和coalesce使用案例
大数据·分布式·spark
hzk的学习笔记44 分钟前
Redisson 的 Watchdog 机制
数据库·redis·分布式·缓存
熙客8 小时前
TiDB:分布式关系型数据库
java·数据库·分布式·tidb
Sirius Wu14 小时前
Rclone实战技巧
分布式
言之。16 小时前
TiDB分布式数据库技术架构概述
数据库·分布式·tidb
老夫的码又出BUG了16 小时前
分布式Web应用场景下存在的Session问题
前端·分布式·后端
杂家16 小时前
Hadoop完全分布式部署(超详细)
大数据·hadoop·分布式
BD_Marathon16 小时前
【Hadoop】hadoop3.3.1完全分布式配置
大数据·hadoop·分布式
Ryan ZX17 小时前
etcd 高可用分布式键值存储
数据库·分布式·etcd
大G的笔记本17 小时前
分布式答案解析
分布式