配置
redis.conf增加slaveof ip port
启动服务时指定master节点:./redis-server --slaveof ip port
查看集群状态:info replication
这边有个有意思的故事,说是master/slave的说法有奴隶之嫌,作者就发起了投票改成了master/replicaof...人权啊
原理
连接阶段
slave启动时,保存了master node的信息,host和ip
slave node内部有个定时任务,每隔1秒检查是否有新的master node需要连接和复制,如果有,就简历socket连接,并建立一个专门的事件处理器,负责复制工作,如接受RDB文件和命令等
数据同步阶段
第一次全量复制,通过RDB快照发给slave,slave首先清除自己的旧数据,然后rdb文件加载新的
master新命令缓存到内存,slave保存rdb之后,再复制给slave
命令传播阶段
master node持久将写命令异步复制给slave node
有延迟