4.1 主从复制
1. 结构图
2. 说明
- 主的redis的数据有两个副本,redis1 和 redis2
- 主redis 和 从redis 的数据保持实时同步。主写入数据,数据会同步到从节点
- 一主多从。
- 主从复制不会阻塞主节点。同步数据的时候,主节点可以继续处理客户端的请求。
- 一个节点可以既主又从。
3. 配置
主节点无需修改。从节点运行:
slaveof
4. 实现原理
- Redis的主从同步分为 全量同步和增量同步
- 只有从机第一次连接是全量同步
- 断线重连有可能是全量,有可能是增量。
- 除此之外都是增量同步。
4.1 全量同步
4.2 增量同步
通常情况下,Master每执行一个写命令就会向Slave发送相同的写命令,然后Slave接收并执行。
4.2 哨兵机制
1. 结构
2. 解决的问题(主从复制的问题)
- 主节点故障,需要手动将一个从节点晋升为主节点,同时需要修改应用方的主节点地址,还需要命令从其他从节点复制新的主节点。需要人工干预
- 主节点的写能力受到单机的限制
- 主节点的存储能力受到单机的限制
3. 流程
3.1 主节点故障,此时两个从节点与主节点失去连接
3.2 每个Sential节点通过定期监控发现主节点出现了故障。
3.3 多个Sential节点对主节点的故障达成一致,选举出sential-3节点作为领导者负责故障转移
3.4 Sential领导者节点执行故障转移
3.5 故障转移后整个Redis Sential的拓扑结构如下
4. 哨兵的作用
- 监控
- 通知
- 主节点故障转移
- 配置提供者