您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

《Redis设计与实现》读书笔记-第伤部分:多机数据库的实现-1:复制

目录

1.旧版复制功能的实现

1.1同步

​ 1.2命令传播

​ 2.旧版复制功能的缺陷

3.新版复制功能的实现 

4.部分同步的实现 

4.1复制偏移量 

 4.2复制积压缓冲区

 4.3服务器运行ID

 5.PSYNC命令的实现

 6.复制的实现

6.1步骤1:设置主服务器的地址和端口

6.2步骤2:建立套接字连接

 6.3步骤3:发送PING命令

6.4步骤4:身份验证

6.5步骤5:发送端口信息

6.7步骤6:同步

6.7步骤7:命令传播 

 7.心跳检测

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

7.2辅助实现min-slaves配置选项

7.3检查命令丢失 


 在redis中,可以通过执行SLACEOF命令或者设置slaveof选项,让一个服务器去复制另一个服务器,我们称呼被复制的服务器为主服务器,而对主服务器进行复制的服务器则称为从服务器

进行复制中的主从服务器双方的数据库将保存相同的数据,概念上将这种现象称作“数据库状态一致”,或者简称为“一致”。

1.旧版复制功能的实现

redis复制功能分为同步喝命令传播两个操作:

1.1同步

 

 1.2命令传播

 2.旧版复制功能的缺陷

 

 

3.新版复制功能的实现 

为了解决旧版复制功能在处理短线重复制情况时的低效问题,redis从版本2.8开始,使用PSYNC命令来代替SYNC命令来执行复制时的同步操作

 

4.部分同步的实现 

 

4.1复制偏移量 

执行复制的双方——主服务器和从服务器会分别维护一个复制偏移量:

主服务器每次向从服务器传播N个字节的字节数据时,就将自己的复制偏移量的值加上N。

从服务器每次收到主服务器传播来的N个字节数据时,就将自己的复制偏移量的值加上N。

 

 4.2复制积压缓冲区

复制积压缓冲区是由主服务器维护的一个固定场地先进先出队列,默认大小1MB

 当主服务器进行命令传播时,它不仅会将写命令发送给所有从服务器,还会将写命令入队到复制积压缓冲区:

 

 4.3服务器运行ID

除了复制偏移量和复制积压缓冲区之外,部分重同步爱需要用到服务器运行ID:

 5.PSYNC命令的实现

PSYNC命令的调用方法有两种:

 根据情况,主服务器接收到PSYNC命令后会返回以下三种回复的其中一种:

 

 6.复制的实现

6.1步骤1:设置主服务器的地址和端口

 

6.2步骤2:建立套接字连接

 6.3步骤3:发送PING命令

 

6.4步骤4:身份验证

 

6.5步骤5:发送端口信息

 

6.7步骤6:同步

 

6.7步骤7:命令传播 

 

 7.心跳检测

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

 

7.2辅助实现min-slaves配置选项

 

7.3检查命令丢失 

 

 


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进