上一节聊了Redis的持久化方式,这一节我们来看看Redis的复制和阻塞概念、
复制
- 复制的使用方式: 如何建立或断开复制、安全性、只读等。
- 说明复制可支持的拓扑结构,以及每个拓扑结构的使用场景。
- 分析复制的原理,包括:建立复制、全量复制、部分复制、心跳等
- 介绍复制过程中常见的开发和运维问题:读写分离、数据不一致、规避全量复制等。
配置
建立复制:
参与复制的节点分为master节点、slave节点。默认情况下redis都是主节点。每个从节点只有一个主节点,而主节点可以同时有多个从节点。复制的数据流动是单向的,只能master -> slave.
复制方式:
- 配置文件中 slaveof masterHost masterPort 注意此命令是异步命令
- redis-server 启动命令中加 --slaveof masterHost masterPort 生效
- client 直接使用命令: slaveof masterHost masterPort 生效
- info replication 可以查看复制关系和信息

断开复制: 执行命令slaveof no one
- 断开与主节点的复制关系
- 从节点晋升为主节点
其实还可以调整从节点slave 其他主节点。比如slaveof newMasterHost newMasterPort
切主复制流程:
- 断开与旧主节点复制关系
- 与新主节点建立复制关系
- 删除从节点当前所有数据
- 对新主节点进行复制操作
安全性

只读
默认从节点使用 slave-read-only=yes 配置为只读模式。因为复制只能从master -> slave, update slave can different data for master and salve, so prod not update this param
传输延迟:
复制时会有网络延迟, repl-disable-tcp-nodelay 控制是否关闭 TCP_NODELAY, 默认关闭。
- 关闭: master -> slave all command
- 开启: master merge small tcp data package 从而节省带宽。默认发送时间间隔取决于linux内核 (40ms)。节省带宽但是增大主从之间的延迟。 比如跨机房部署。
- 要求低延迟,一般同机房部署并关闭 repl-disable-tcp-nodelay, 如果考虑容灾性,考虑开启此参数。
拓扑
- 一主一从: 主节点宕机时从节点提供故

最低0.47元/天 解锁文章
799

被折叠的 条评论
为什么被折叠?



