1.主从复制原理
当启动一个slave node的时候,它会发送一个psync命令给master node ,如果slave是重新连接master的,那么master只会复制给slave部分缺失数据,如果slave是第一次连接,就会触发一次full resynchronization,开始full resynchronization的同时,master会启动一个后台线程,开始生成一份RDB快照,同时还会从客户端接受到的所有写命令缓存到内存中,RDB文件生成完毕之后,master会将这个RDB文件发送给slave,slave会写入本地磁盘,然后再从本地磁盘写入内存,然后master会将内存缓存的写命令发送给slave,slave会同步这些命令
主从步骤:
(1)slave会本地保存master的host和ip,根据你配置的slave.conf来得知
(2)slave内部会有一个定时任务,每秒都会check 是否有master要连接,如果有就跟master 建立socket网络连接
(3)如果master配置了口令认证requirepass,那么slave发送masterauth口令过去认证
(4)master 启动全量复制,将自己所有数据发送给slave,实现数据同步
(5)如果还有新的数据到master,master也会异步将数据复制到slave中
2.断点续传
如果主从复制过程中,网络连接断开,那么就可以从上一次复制的地方接着复制,而不是从头复制一份