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

Redis——》Redis的部署方式对分布式锁的影响

推荐链接:
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Kafka】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】
    总结——》【Linux】
    总结——》【MongoDB】
    总结——》【Elasticsearch】

Redis——》Redis的部署方式对分布式锁的影响

  • 一、Redis常见的部署方式
  • 二、生产环境一般采用的部署方式
  • 三、当主从发生切换时,分布式锁依旧安全吗?
    • 1、场景
    • 2、现象
    • 3、结论

一、Redis常见的部署方式

  • 单机模式
  • 主从模式
  • 哨兵(sentinel)模式
  • 集群模式

二、生产环境一般采用的部署方式

主从+哨兵

Q:主从+哨兵结合模式,有什么优点?
A:
普通的主从模式:当master崩溃时,需要手动切换让slave成为master。
主从+哨兵结合模式:当master异常宕机时,哨兵可以实现故障自动切换,把slave提升为新的master,继续提供服务,以此保证可用性

三、当主从发生切换时,分布式锁依旧安全吗?

1、场景

  1. 客户端1在master上执行SET命令,加锁成功
  2. 此时,master异常宕机,SET命令还未同步到slave上(主从复制是异步的)
  3. 哨兵将slave提升为新的master,但这个锁在新的master上丢失了,导致客户端2来加锁成功了,两个客户端共同操作共享资源

9673f5b8915046bcb35c83f07f6f6a04.png

2、现象

发生锁数据丢失问题,因为主从复制是异步的,主库加了锁却没来得及同步到从库上,从库就被哨兵提升为新主库,所有这个锁在新的主库上,丢失了!

3、结论

当引入Redis副本后,分布式锁还是可能受到影响。即使Redis通过sentinel保证高可用,如果这个master节点由于某些原因发生了主从切换,那么就会出现锁丢失的情况。

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

相关文章:

  • VTK——使用包围盒切割医学图像
  • 在工具提示中使用自绘修改字体
  • 【Git管理工具】使用Docker部署GitLab服务器
  • 安装kali虚拟机镜像的坑
  • 【Android】TextView适配文本大小并保证中英文内容均在指定的UI 组件内部
  • 【力扣每日一题】2023.8.31 一个图中连通三元组的最小度数
  • C语言--volatile
  • 技术深入解析与教程:网络安全技术探秘
  • Android studio 实现生成二维码和扫描二维码
  • Linux中7种文件类型
  • 基础算法--快速排序
  • 机器学习的第一节基本概念的相关学习
  • Python 之__name__的用法以及解释
  • 【FPGA零基础学习之旅#12】三线制数码管驱动(74HC595)串行移位寄存器驱动
  • networkX-03-连通度、全局网络效率、局部网络效率、聚类系数计算
  • 【深入解读Redis系列】Redis系列(五):切片集群详解
  • 无涯教程-JavaScript - NORMDIST函数
  • 递归应用判断是否循环引用
  • 使用nginx-lua配置统一url自动跳转到hadoop-ha集群的active节点
  • AJAX学习笔记2发送Post请求
  • 产品团队的需求分析指南
  • Python算法——排序算法(冒泡、选择、插入、快速、堆排序、并归排序、希尔、计数、桶排序、基数排序)
  • [Linux]文件描述符(万字详解)
  • RenderTarget导出成图片,CineCamera相机
  • 深入探讨Java虚拟机(JVM):执行流程、内存管理和垃圾回收机制
  • 3D 碰撞检测
  • Unity Canvas动画不显示的问题
  • NSSCTF2nd与羊城杯部分记录
  • 数据库(一) 基础知识
  • vue从零开始学习