6.3 Redis主从复制之runid和偏移量

1.数据同步
Redis在2.8及以上版本使用psync命令完成主从数据同步,同步过程分为全量复制和部分复制。

(1).全量复制
一般用于初次复制场景,Redis早期支持的复制功能只有全量复制,它会把主节点全部数据一次性发送给从节点,当数据量较大时,会对主从节点和网络造成很大的开销。

(2).部分复制
用于处理在主从复制中因网络闪断等原因造成的数据丢失场景,当从节点再次连上主节点后,如果条件允许,主节点会补发丢失数据给从节点。因为补发的数据远远小于全量数据,可以有效避免全量复制的过高开销。
部分复制是对老版复制的重大优化,有效避免了不必要的全量复制操作。因此当使用复制功能时,尽量采用2.8以上版本的Redis。

(3).psync命令运行需要的组件支持

  • 主Redis和从Redis的复制偏移量
  • 主Redis的复制积压缓冲区
  • Redis的运行ID

2.runid
(1).什么是runid
Redis服务器的随机标识符(用于Sentinel和集群),重启后会改变。当复制时发现和之前的run_id不同时,将会对数据进行全量同步。

(2).查看命令

redis-cli -p 6379 info server | grep run
run_id:6376ca72eaf556a574d3fc3817f318a16376758f

3.复制偏移量
(1).什么是复制偏移量
复制偏移量是指命令的字节长度,通过对比主从节点的复制偏移量,可以判断主从节点数据是否一致。

(2).查看命令

localhost:6379 > info replication
master_repl_offset:1055130

(3).流程

  • 参与复制的主从节点都会维护自身的复制偏移量,主节点(master)在处理完写入命令后,会把命令的字节长度做累加记录,统计在info relication的master_repl_offset指标中。
  • 从节点(slave)每秒钟上报自身的复制偏移量给主节点,因此主节点也会保存从节点的复制偏移量。
  • 从节点在接收到主节点发送的命令后,也会累加记录自身的偏移量,统计在info relication的slave_repl_offset指标中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值