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

[Redis]——主从同步原理(全量同步、增量同步)

目录

Redis集群:

主从同步原理:

replid和offset:

全量同步和增量同步:

repl_baklog文件:

主从集群的优化:


Redis集群:

      部署多台Redis我们称之为Redis集群,他有一个主节点(负责写操作),多个从节点(负责读操作),它有高可用性、可扩展性、性能提升、自动分片以及无中心架构等优势。

如果想让A成为B的从节点,使用命令

我们在从节点使用slaveof masterIp masterport 或者 replicaof masterIp masterport

主从同步原理:

  • 第一阶段:判断replid是否相同,如果不同,那么代表是第一次建立连接,这是做的操作是修改从节点的replid。
  • 第二阶段:主节点执行bgsave命令,然后将RDB文件发送给从节点,在记录RDB和发送文件的同时,主节点所作的写操作会记录到一个日志文件中repl_baklog。
  • 第三阶段:发送repl_baklog命令,从节点同步并执行里面的命令。

replid和offset:

replid:用于判断两者是否是第一次连接

offset:是偏移量,主节点每做一次写操作,偏移量会+1,然后从节点每做一次增量同步操作,就是执行repl_baklog命令,offset也会跟着改变,所以当主机点和从节点的offset不同时,就会做主从同步。

全量同步和增量同步:

全量同步(也就是第一次同步)流程:

        slave建立连接判断replid是否相同 -> 不同拒绝增量同步,并修改replid/相同进行增量同步 ->master节点做bgsave生成RDB文件发送给从节点 -> 从节点做全量同步 -> master做bgsave期间的命令记录在repl_baklog中,并持续将该文件中的命令发送给从节点 -> 从节点执行log中命令(offset起作用了)保证主从一致。

 增量同步:

        增量同步是从节点更新repl_baklog文件中offset偏移量之后的那些操作。

repl_baklog文件:

        repl_baklog文件可以理解为一个闭环的数组,当master做写操作时,主节点的offset会增加,当文件写满了时,会从头开始,覆盖旧数据,所以当从节点宕机了,主节点一直在写数据,导致转了一圈到了从节点的offset的地方了,那么就会触发全量同步

主从集群的优化:

  • 从RDB角度->

在master中配置repl-diskless-sync yes启用无磁盘复制,直接通过网络传输到从节点。

Redis单节点内存占用不要太大,减少RDB导致的过多磁盘IO。

  • 从增量同步角度

适当增大repl_baklog文件的大小,发现slave宕机尽快实现故障恢复

限制一个master上的slave节点数量,如果slave数量太多,建议采用主-从-从链式结构。

 

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

相关文章:

  • Buildroot 之二 详解构建架构、流程、external tree、示例
  • 牛客小白月赛61-C-小喵觅食
  • 200 名专家编写报告:AI 发展可能对人类构成「灭绝级威胁」
  • 学习Android的第二十九天
  • SpringMVC重点记录
  • 一条 SQL 更新语句如何执行的
  • Github上哪些好用的安全工具1
  • 手写Mybatis自动填充插件
  • upload文件上传漏洞复现
  • Docker 安装部署 SqlServer 数据库
  • cmath 中cos sin等常用函数的坑(弧度角度换算)
  • 深度解析HTTP反向代理-okey proxy
  • SwinIR训练报错解决
  • C++类和对象一
  • Linux之线程互斥
  • C++ 拷贝构造函数和运算符重载
  • 二刷代码随想录算法训练营第二十三天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 信息抽取在旅游行业的应用:以景点信息抽取为例
  • Linux——基础指令
  • H5 带网站测速引导页源码
  • 案例分析篇07:数据库设计相关28个考点(23~28)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)
  • Word中解决插入脚注导致的分页位置错误问题
  • 2024/03/14(网络编程·day2)
  • 2024最新陪诊小程序/医院陪诊滴嗒陪诊小程序源码-陪护服务平台陪诊师陪
  • 基于单片机的温度控制系统设计
  • unity3d Animal Controller的Animal组件中Speeds,States和modes基础部分理解
  • Tomcat详解
  • SpringCloudAlibaba 网关gateway整合sentinel日志默认路径修改
  • #LLM入门|Prompt#3.3_存储_Memory
  • 基于SSM+Vue的龙腾公司员工信息管理系统设计与实现