一,主从复制
1. 配置文件
a. 从节点配置文件加入 slaveof masterIp masterPort ,
b. 先启动master 后启动 slave 即可完成复制
2. 启动命令配置
redis-server --slaveof masterIp matesrPort
3.相关知识
命令
a. info replication 查看当前服务的位置
b. slaveof no one 断开主从复制(在slave节点上执行)
配置
slave-read-only | yes/no 从节点是否用只读模式 |
repl-disable-tcp-nodelay | yes/no 主从一般部署在不同机器上,复制时存在网络延时问题,redis提供repl-disable-tcp-nodelay参数决定是否关闭TCP_NODELAY,默认为关闭 参数关闭时:无论大小都会及时发布到从节点,占带宽,适用于主从网络好的场景, 参数启用时:主节点合并所有数据成TCP包节省带宽,默认为40毫秒发一次,取决于内核,主从的同步延迟40毫秒,适用于网络环境复杂或带宽紧张,如跨机房
|
二,主从拓扑
1. 一主一从
用于主节点故障转移从节点,当主节点的“写”命令并发高且需要持久化,可以只在从节点开启AOF(主节点不需要),这样即保证了数据的安全性,也避免持久化对主节点的影响
2. 一主多从
针对“读”较多的场景,“读”由多个从节点来分担,但节点越多,主节点同步到多节点的次数也越多,影响带宽,也加重主节点的稳定
3.树状主从
一主多从的缺点(主节点推送次数多压力大)可用些方案解决,主节点只推送一次数据到从节点1,再由从节点2推送到11,减轻主节点推送的压力。
三,复制原理
执行slave master port后,与主节点连接,同步主节点的数据
四,数据同步
redis 2.8版本以上使用psync命令完成同步,过程分“全量”与“部分”复制
全量复制:一般用于初次复制场景(第一次建立SLAVE后全量)
部分复制:网络出现问题,从节占再次连主时,主节点补发缺少的数据,每次 数据增加同步
心跳:主从有长连接心跳,主节点默认每10S向从节点发ping命令,repl-ping-slave-period控制发送频率