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

Redis单点故障+红锁原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

      • 一、Redis单点故障
      • 二、红锁原理
      • 三、Redission实现了红锁


一、Redis单点故障

单台redis容易出单点故障采用集群,获取到锁之后数据持久化到rdb,aof文件中从节点有可能在从主节点拿到数据之前,主节点就已经挂了,sentinel哨兵机制把从节点选为主节点,此时数据还没有拉取到新的主节点上,新主节点还不知道已经有线程拿到了锁,此时就有两个线程获取到了锁,分布式锁就失效了。

解决点单故障方式:引入红锁机制

二、红锁原理

用Redis中的多个master实例,来获取锁,只有大多数实例获取到了锁,才算是获取成功。具体的红锁算法分为以下五步:

  1. 获取当前的时间(单位是毫秒)。
  2. 使用相同的key和随机值在N个节点上请求锁。这里获取锁的尝试时间要远远小于锁的超时时间,防止某个masterDown了,我们还在不断的获取锁,而被阻塞过长的时间。
  3. 只有在大多数节点上获取到了锁,而且总的获取时间小于锁的超时时间的情况下,认为锁获取成功了。
  4. 如果锁获取成功了&#x
http://www.lryc.cn/news/10020.html

相关文章:

  • 数据库中的存储过程
  • 基于 VPX 总线的工件台运动控制系统研究与开发-DSP+FPGA硬件架构(一)
  • Android 9.0 根据包名授予app所需的权限
  • 如何将Python包发布到PyPI上,使用pip安装自己的库
  • 【Git】git常用命令总结
  • Cortex-M0中断控制和系统控制
  • 科技云报道:2023,云计算的风向变了
  • 工程管理系统源码-专注项目数字化管理-工程管理
  • Nacos详细使用操作文档(图文详细)
  • 如何评价2023年美赛ABC题目
  • Win10显示dds及tga缩略图
  • Lesson5.1---Python 之 NumPy 简介和创建数组
  • Exchange 2013升级以及域名绑定等若干问题
  • linux安装jenkins
  • 【MySQL】MySQL表的增删改查(CRUD)
  • GCC for openEuler 数据库性能优化实践
  • 【C++】类和对象(第二篇)
  • MySQL数据库(数据库约束)
  • Hive的安装与配置
  • 关于医院医用医疗隔离电源系统应用案例的分析探讨
  • 【LeetCode】剑指 Offer 07. 重建二叉树 p62 -- Java Version
  • ERROR 1114 (HY000): The table ‘tt2‘ is full
  • 考了PMP证后工资大概是多少 ?(含pmp资料)
  • 基于国产龙芯 CPU 的气井工业网关研究与设计(一)
  • 40/365 javascript 数据类型
  • 后勤管理系统—服务台管理功能
  • Spring Boot 是什么,应该如何学习,有哪些优缺点
  • 使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)
  • C++ 浅谈之 AVL 树和红黑树
  • 【Kotlin】Kotlin函数那么多,你会几个?