建立复制
建立复制的方式很简单。一般在从节点的redis.conf中配置如下两个参数即可:
slaveof redis-master 6379
masterauth 111111
配置复制的方式实际上有3种:
1.在redis.conf中加入slaveof {masterHost} {masterPort};
2.在redis-server启动命令中加入--slaveof {masterHost} {masterPort};
3.直接在redis-cli控制台中,执行slaveof {masterHost} {masterPort}命令.
断开复制:
在slave上执行slaveof no one 来断开与master的复制关系。
注意:slave断开复制后并不会抛弃原有的数据。
通过slaveof命令还可以实现切主操作。执行slaveof {newMasterIp} {newMasterPort}命令即可。
主从架构的拓扑结构
主从复制原理
复制过程
数据同步
全量同步和部分同步
psync命令需要的组件支持
psync命令运行流程
全量复制
部分复制
部分复制是redis针对全量复制的过高开销做的优化措施。使用psync {runid} {offset}命令实现。 当slave复制master时,如果出现网络闪断或者命令丢失等异常请情况,slave回向master要求补发丢失的命令数据。如果master的backlog中存在这部分数据则直接发给slave。 补发的数据远远小于全量数据,所以开销很小。
心跳
异步复制
主从架构中的一些注意点
读写分离
主从配置不一致
规避全量复制
规避复制风暴
参考
《redis开发与运维》