目录
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检查命令丢失
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)