redis-主从迁移

当主库宕机之后,从库可以处理读请求,但是写请求无法处理

这时就需要进行主从迁移,那么主从迁移有几个问题需要解决

1. 如何确认主库是真的挂了

2. 该选择哪个从库升级为主库

3. 怎么通知其他从库 主库被替代了

redis 哨兵模式解决了上面的问题

哨兵是一个运行在redis中的一个进程,主要负责 监控 选主 和通知

监控: 哨兵定时发送心跳到主从库 从库无回复会被标记为下线,主库无回复会切换主库

选主: 利用raft算法选举出新的主库

通知: 哨兵发送通知到所有的从库,让他们进行replicaof与主库建立连接 进行数据复制,然后哨兵发送新库信息给客户端 客户端请求转发到新库地址

 

sentinel需要做两个判断

1. 判断主库是否下线

  哨兵周期性的发送ping命令,如果主库超时回复会被标为主观下线

2. 选主

  如何不误判呢? 那就去是建立哨兵集群,引入多个哨兵实例一起来判断,当n/2+1的哨兵判定主库主观线下了,就开始在从库中选主

 

  先过滤掉老是跟主库断连的从库,然后给剩余的从库打分

  第一轮,优先级高的从库优先 用户可以配置,给不同的从库设置优先级,如果从库优先级一样就开启第二轮

  第二轮,和旧主库同步程度最高的得分最高,如果offset一致进行第三轮

  第三轮,id号小的从库得分高

 

当主库宕机了在主从替换期间,客户端能否正常请求?

1. 读请求从库可以处理,写请求无法处理,对写入请求返回值不敏感的操作可以先缓存起来,等迁移完毕之后再写入.

主从迁移之后客户端如何得到通知?

1. 哨兵以广播的方式通知连接的客户端

 

posted @   rudynan  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示