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

redis集群

主从集群,主从复制

单点redis并发能力是有限的,想要进一步提高并发能力,需要搭建redis集群,实现读写分离。

一个主节点master,主要实现增删改操作,多个从节点实现读操作。

当主节点修改了数据,必须要将数据同步给其他从节点。

那么主节点将数据同步给其他从节点具体流程是什么?

1,全量同步

  1. 从节点执行replicaof命令,建立连接
  2. 从节点发送数据同步请求
  3. 主节点判断是否是第一次同步
  4. 是第一次,返回主节点数据版本信息
  5. 从节点保存版本信息
  6. 主节点执行 bgsave 生成 RDB 快照文件
  7. 主节点将 RDB 文件发送给从节点
  8. 从节点清空自身数据,加载接收到的 RDB 文件(由于在生成RDB文件时,有可能又有新命令来,所以还有下面的操作)
  9. 主节点将生成 RDB 期间的新写命令存入复制缓冲区repl_baklog(一个日志文件)
  10. RDB 加载完成后,主节点将缓冲区中的命令发送给从节点执行

两个关键概念

master如何判断slave是第一次请求?

从节点第一连接主节点时,会发送自己的replid和offset,主节点就会判断是否和自己的replid是否不一致,不一致就说明是第一次请求,vice versa。然后主节点将自己的replid发送给从节点。

同步数据时,如何确保,从节点同步刚好缺少的数据呢?

如果判断不是第一次连接,那就不会生成RDB文件,而是通过repl_baklog文件去同步数据

那怎么决定从repl_baklog文件读取多少文件呢,读的刚好是从节点缺的数据呢?

那就要用到offset信息。如果从节点offset值为50,主节点offset值为80,那就说明,50-80间的数据还没同步,那就同步50-80间的repl_baklog文件即可。

2,增量同步(发生在slave重启/后期数据变化)

  1. 初次同步完成后,主节点将每个写命令发送给从节点
  2. 从节点接收并执行这些命令,保持与主节点数据一致

哨兵模式

分片集群

http://www.xdnf.cn/news/921997.html

相关文章:

  • [最全总结]城市灾害应急管理系统
  • Linux虚拟化技术:从KVM到容器的轻量化革命
  • Nodejs工程化实践:构建高性能前后端交互系统
  • sqlsugar WhereIF条件的大于等于和等于查出来的坑
  • WSL文件如何上传到GitHub
  • python版若依框架开发:后端开发规范
  • 快捷键的记录
  • UOS无法安装deb软件包
  • [论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
  • AcWing--数据结构1
  • stm32—ADC和DAC
  • 《JavaAI:稳定、高效、跨平台的AI编程工具优势解析》
  • Linux下的fuser用法简析
  • 文件(保存)通讯录
  • 长跑赛接力赛模式
  • C++ -- 多态
  • 《高等数学》(同济大学·第7版)第二章第五节“函数微分“
  • SpringBoot+Mysql校园跑腿服务平台系统源码
  • Doris 与 Elasticsearch:谁更适合你的数据分析需求?
  • 游戏常用运行库合集 | GRLPackage 游戏运行库!
  • LILIKOI FBG腹腔镜抓握力传感器的技术解析与应用前景
  • 调试器基本原理
  • LeetCode 08.06 面试题 汉诺塔 (Java)
  • HttpURLConnection实现
  • 智能手表供应链与采购清单(Aurora Watch S1)
  • 从零开始开发纯血鸿蒙应用之网络检测
  • 如何在c/c++中定义和使用宏
  • C++ 中的编译期计算(Compile-Time Computation)
  • 安达发|装饰材料行业APS生产排程软件:破解生产困局,智造升级新引擎
  • MySql数据库入门到精通——关系数据库标准语言SQL