redis-主从迁移
当主库宕机之后,从库可以处理读请求,但是写请求无法处理
这时就需要进行主从迁移,那么主从迁移有几个问题需要解决
1. 如何确认主库是真的挂了
2. 该选择哪个从库升级为主库
3. 怎么通知其他从库 主库被替代了
redis 哨兵模式解决了上面的问题
哨兵是一个运行在redis中的一个进程,主要负责 监控 选主 和通知
监控: 哨兵定时发送心跳到主从库 从库无回复会被标记为下线,主库无回复会切换主库
选主: 利用raft算法选举出新的主库
通知: 哨兵发送通知到所有的从库,让他们进行replicaof与主库建立连接 进行数据复制,然后哨兵发送新库信息给客户端 客户端请求转发到新库地址
sentinel需要做两个判断
1. 判断主库是否下线
哨兵周期性的发送ping命令,如果主库超时回复会被标为主观下线
2. 选主
如何不误判呢? 那就去是建立哨兵集群,引入多个哨兵实例一起来判断,当n/2+1的哨兵判定主库主观线下了,就开始在从库中选主
先过滤掉老是跟主库断连的从库,然后给剩余的从库打分
第一轮,优先级高的从库优先 用户可以配置,给不同的从库设置优先级,如果从库优先级一样就开启第二轮
第二轮,和旧主库同步程度最高的得分最高,如果offset一致进行第三轮
第三轮,id号小的从库得分高
当主库宕机了在主从替换期间,客户端能否正常请求?
1. 读请求从库可以处理,写请求无法处理,对写入请求返回值不敏感的操作可以先缓存起来,等迁移完毕之后再写入.
主从迁移之后客户端如何得到通知?
1. 哨兵以广播的方式通知连接的客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 让容器管理更轻松!