1. 主从复制模型
从节点会复制主节点的内容。防止主节点宕机了,从节点可以生效。
主节点set hello,从节点中可以get hello获取值。
通过slaveof命令可以让某个节点成为从节点。
同样的,使用slaveof no one可以取消成为从节点。
2.全量复制
runid:服务器的唯一标识
offset:数据的偏移量,从节点定期向主节点汇报偏移量,主节点以此判断主从节点的数据是否一致。
buffer:在生成rdb和传输rdb的过程中的命令保存在buffer中发过去,保证主从数据一致
3.部分复制
如果发生了网络抖动,断开连接,我们将部分数据发送给从节点的过程:
4.故障转移
如果slave宕掉了一个,就让原来连接该主机的机器连接到其他slave上
master宕机了,选出一个新的master
5. 复制风暴
单节点master:如果恰好很多slave同时产生全量复制的命令,可能会产生master性能跟不上的问题,如图,可以将master分摊在slave1上,其他字节点可以从slave1上去复制。
多节点master:如果是多节点的master不要放在一个机器上,否则会出现下面的状况。