当前位置: 首页 > news >正文

分布式锁-redission锁的MutiLock原理

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

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

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

http://www.lryc.cn/news/337347.html

相关文章:

  • MySQL索引、B+树相关知识汇总
  • 相机模型浅析
  • 国芯科技(C*Core)双芯片汽车安全气囊解决方案
  • 牛客周赛 Round 39(A,B,C,D,E,F,G)
  • 解锁区块链技术的潜力:实现智能合约与DApps
  • MAC OS关闭SIP(navicat 无法保存密码)
  • 阿里云服务器带宽价格全解析,附报价单
  • Day36|贪心算法part05:435. 无重叠区间、763.划分字母区间、56. 合并区间
  • 棋牌室计时吧台计费收费灯控管理系统软件操作流程
  • 【实践篇】RabbitMQ实现队列延迟功能汇总
  • EditPlus来啦(免费使用!)
  • 蓝桥杯22年第十三届省赛-数组切分|线性DP
  • 小米汽车:搅动市场的鲶鱼or价格战砧板上的鱼肉?
  • Docker 学习笔记(五):梳理 Docker 镜像知识,附带 Commit 方式提交镜像副本,安装可视化面板 portainer
  • K8S node节点执行kubectl get pods报错
  • C++简单日志系统
  • MySQL基础练习题:习题21-25
  • 全面的网络流量监控
  • 探索网络爬虫:技术演进与学习之路
  • 目标检测——色素性皮肤病数据集
  • Unity3D 打空包与远程资源更新详解
  • 32单片机入门持续更新中
  • 蓝桥杯 每天2题 day6
  • Fast-lio2运行时如何显示轨迹线
  • 2022年全国青少年信息素养大赛Python国赛第1-10题,含解析答案
  • python学习笔记——文件操作
  • 滑动窗口用法
  • 智慧港口整体解决方案(一)
  • ubuntu如何限制系统日志大小?
  • 【Linux】线程概念及线程互斥