Redis之复制(主从一致)

通过命令slaveof命令加ip   设定注定复制的主服务器

旧版复制只要是由两个部分组成的

  1. 同步:让从服务器的数据库状态更新至主服务器数据库状态
  2. 命令传播:将对主服务器的写改操作,传送给从服务器,使得主从服务器状态重写一致

同步:

  1. 从服务器向主服务器发送SYNC命令
  2. 主服务器创建子进程进行RDB文件创建与写入,与此同时将该时刻接收的写改操作压入到缓冲区中,RDB文件完成后。发送RDB文件给从服务器,从服务器加载完后,主服务器发送缓冲区数据(主服务器会有一段时间的阻塞时间)。

旧版复制的缺点:如果从服务器链接上主服务器后,并进行了同步,但是过了一段时间后断线了,重新链接后只能执行同步(损耗很大)

  • RDB文件的创建以及写入      IO  CPU  磁盘
  • 发送RDB    网络资源
  • 载入RDB  阻塞,从服务器无法访问

 新版本的复制、

新版本的复制  最主要包含两个操作:完整同步  部分同步

完整同步的实现与初次同步实现相同

部分同步的实现:最主要引入  复制偏移量  Redis_id  主服务器中的命令积压缓冲区(大小要适当)

 Redis_id:当从服务器对主服务器进行初次复制,主服务器就会将运行id发给从服务器并保存,当从服务器重新链接上主一个服务器时候,从服务器发送保留的id与主服务器id对比。

相同就尝试 部分同步

 不相同就完成同步

就是当从服务器的复制偏移值+1仍然在命令积累缓冲区中,就执行部分复制。

-1是代表使用完整复制

-2代表redis使用的是2.8版本前

其他就是意味可以使用部分同步。

 

心路检测

在命令传播阶段从服务器默认会以每隔一秒的频率发送replconf ACK<replication_offset>、

检测主从服务器网络连接状态

辅助实现min_slaves

检测命令丢失

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值