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

本文详细解释了Redis主从集群的工作原理,包括主从同步过程(replid和offset的作用)、全量同步与增量同步的区别,以及针对RDB和增量同步的优化措施,如无磁盘复制和调整repl_baklog设置。
摘要由CSDN通过智能技术生成

目录

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数量太多,建议采用主-从-从链式结构。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会就选C.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值