redis-复制

reids在2.8版本增加了部分复制功能,在一些场景中代替了全量复制,提高了复制的效率。

1、全量复制

1)slave向master发送SYNC命令,master执行BGSAVE命令生成RDB文件。

2)master将生成的RDB文件发送给slave。

3)slave载入RDB文件到内存。

4)master将执行SYNC命令之后收到写命令记录到缓存中,并将这些命令发送给slave。

可以看出,全量复制会消耗大量的CPU,内存,磁盘IO,网络资源,因而应该尽量减少使用全量复制。

2、部分复制

部分复制主要在内存中缓存了一些最近的复制命令,当出现网络问题时,slave重新连接上master的时候,master会根据slave发送的复制偏移量来决定是进行部分复制还是全量复制。

1)复制偏移量

master向slave传播命令的时候会更新自己的偏移量,slave在收到命令后也会更新自己的偏移量。

2)复制缓冲区

master会维护一个固定长度的FIFO队列,默认大小是1M,当master进行命令传播后会将这个命令加入到复制缓冲区中。

3)服务器运行ID

每个redis服务启动时会自动生成一个40位的ID,slave断线重新连接上master开始复制时会发送这个ID,master根据这个ID判断是否是自己,如果不是自己则也需要进行全量复制。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 浅谈Redis主从复制 2013.09.27 11:27:00 来源: 京东 作者:张成远 ( 0 条评论 )...
    epime阅读 3,647评论 0 2
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,198评论 1 51
  • 1 前期需要了解的一些知识1.1 redis在Mac下的安装简单来说就一个命令 brew install redi...
    小鱼嘻嘻阅读 3,114评论 0 2
  • 摘要:1 什么是Redis部分重新同步-psync redis部分重新同步:是指redis因某种原因引起复制中断后...
    暖夏未眠丶阅读 4,683评论 0 3
  • ​​我已经好久没有生病,都似乎忘记了生病的感觉。 发烧到39度,头痛得像要裂开,口又干又苦,躺在床上浑身酸痛,坐起...
    杏仁BOOK阅读 2,695评论 2 2