Redis笔记---主从复制

Posted realname

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis笔记---主从复制相关的知识,希望对你有一定的参考价值。

主从复制

从服务根据slaveof配置获取主服务信息,复制主服务。

一、同步

1、从服务向主服务发送sync(2.8以后改为psync)命令
2、主服务收到sync命令后,执行bgsave,fork子进程执行RDBSave命令创建RDB文件,并使用缓冲区记录之后执行的写命令。
3、当bgsave执行完毕后主服务将生成的RDB文件发送到从服务,从服务接收执行RDBLoad加载RDB文件,此时从服务会放弃所有已有数据。
4、主服务发送缓冲区的写命令到从服务,从服务执行写命令,同步结束。

二、命令传播

当同步操作完成后,主服务会将写操作发送给从服务,从服务执行相应写操作,与主服务状态保持一致。

三、PSYNC

当主从复制过程中,从服务断线,重连期间主服务发生了新的写操作,此时从服务同步需要主服务重新生成RDB文件,并放弃当前数据,其实断线前从服务和主服务状态是一致的,redis从2.8版本开始使用psync代替sync,他的重同步功能,能够使从服务断线重连后,主服务只发送期间的写命令。
部分重同步:
1、复制偏移量
2、复制缓冲区
3、run id

四、写时复制

写时复制(copy on write)
fork命令复制主进程,产生一样的子进程,COW使得子进程不会复制主进程的内存,而是在自己的内存中指向主内存,执行写操作时,才从主进程复制。

四、缺点

主从复制虽然解决了单点故障的问题,但是所有写操作全部在主服务执行,同步到从服务存在一定的延时,当系统繁忙时,这个问题会更加严重,而且随着从节点的增加变得越加严重。

以上是关于Redis笔记---主从复制的主要内容,如果未能解决你的问题,请参考以下文章

Redis学习笔记9:主从复制

Redis学习笔记9:主从复制

Redis学习笔记9:主从复制

Redis学习笔记—主从复制

Redis 学习笔记(十四)主从复制

尚硅谷Redis学习笔记-- Redis主从复制