Redis主从复制的原理
最终实现原理也为底层的全盘快照与AOF追加的混合模式保证主从节点的最终一致性
主从复制搭建步骤
1.主节点正常启动,无需额外配置
2.在从节点的配置文件redis.conf中加入slaveof 192.168.152.128 6379 //这里的IP与端口号为主节点的IP与端口
3.启动从节点slave
//其中第二步亦可以使用命令redis-server --slaveof 192.168.152.128 6379 临时生效
需要注意的点
- 若主节点数据比较重要,在配置文件中加入密码验证方式,配置参数为requirepass 123456
- 从节点建议使用只读模式,slave-read-only=yes, 若从节点修改数据,主从数据不一致
redis主从同步的拓扑结构有三种
第一种一主一从
优点:主节点用于存储数据与同步数据,从节点主要用于读取数据
缺点:主节点故障后只能人工切换主从
第二种一主多从
缺点:
- 主节点写入压力大的时候容易出现问题
- 主节点故障后只能手动修改主从
第三种树状一主多从
优点:解决主节点写入压力大时候,数据同步操作的耗时
缺点:主节点故障后只能人工切换主从
Redis哨兵机制(Sentinel)
产生哨兵机制的原因?
解决主节点故障后只能手动切换主从的缺陷
哨兵机制的高可用
当主节点产生故障的时候,由哨兵机制(Sentinel)发现并执行故障转移,从而实现服务高可用

其实最终3个哨兵最终只需要一个提供服务,首先使用Raft算法(选举算法)实现选举机制,选出一个哨兵节点来完成转移和通知
哨兵机制中哨兵的工作流程
首先定时产看当前架构的拓扑结构
每个哨兵每隔10s就会向主节点发送info指令,查看当前架构的拓扑结构,哨兵配置的时候只要配置对主节点的监控即可,向
主节点发送info指令,也可以获取从节点的信息,当有新节点加入,可以马上知道

其次各个哨兵节点会发送自身的消息
每隔2s各个哨兵会向数据节点发送自己对当前主节点的判断,其他哨兵也会订阅该消息,从而获取其他哨兵的对主节点的判断

心跳检测
每隔1s各个哨兵会想主节点、从节点、以及其余各个哨兵节点发送ping命令,查看链接情况

若主节点出现故障后,三个哨兵先根据选举算法选举出一个领导者,用力处理故障,其展示如下

如何确定故障产生后的主节点
- 过滤掉不健康的(下线或断线),没有回复过哨兵ping响应的从节点
- 选择salve-priority从节点优先级最高(redis.conf)的
- 选择复制偏移量最大,指复制最完整的从节点
本文介绍Redis主从复制的实现原理及配置步骤,包括全盘快照与AOF追加混合模式确保主从节点的一致性。探讨了一主一从、一主多从及树状一主多从等不同拓扑结构的特点,并详细解析了Redis哨兵机制如何通过选举算法实现故障转移以保障服务高可用。
2345

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



