Redis 数据库的主从复制
1. 主从复制
1.1 什么是主从复制
主从复制,是将多台数据库服务器分为主节点(master)和从节点(slaver),主节点数据更新后会根据配置和策略,自动同步到从节点上,从而保证主从节点中存有相同的数据。
1.2 主从复制的作用
有了主从复制,数据可以有多份副本,这就带来了很多好处:
(1)提升数据库系统的请求处理能力。
单个节点能够支撑的读流量有限。部署多个节点,并构成主从关系,主从节点一起提供服务。
(2)默认实现读写分离机制,Master 以写为主,Slave 以读为主,提升系统的缓存读写性能。
(3)容灾快速恢复,提升整个系统的可用性。
因为从节点中有主节点数据的副本,当主节点宕机后,可以立刻提升其中一个从节点为主节点,继续提供服务。
1.3 Redis 的主从复制原理
主从复制,直观的做法是主节点产生一份数据的快照发送给从节点,以快照数据为基准,将之后增量的数据变更同步给从节点,保证主从数据的一致。总体来看,主从复制一般包含全量数据同步、增量同步两个阶段。
(1)全量数据同步
主节点产生一份全量数据的快照,即 RDB 文件,并将此快照发送给从节点。且从产生快照时刻起,记录新接收到的写命令。当快照发送完成后,将累积的写命令发送绐从节点,从节点执行这些写命令。一般用于主从节点首次数据同步,完成基准数据。
(2)增量同步(命令传播)
全量数据同步完成后,主节点将执行过的写命令源源不断地发送给从节点,从节点执行这些命令,保证主从节点中数据有相同的变更,保证主从节点数据的一致。
2、Redis 主从复制机制总结
(1)一个 master 节点 可以有多个 slave 节点;
(2)slave 节点故障,读请求的处理性能下降;
(3)master 节点故障,写请求无法执行;
(4)当 master 发生故障,可手动将其中一台 slave 使用 slaveof no one 命令提升为 master,其它 slave 执行 slaveof 命令指向这个新的 master;
(5)主从复制模式的故障转移需要手动操作,要实现自动化处理,这就需要Sentinel 哨兵,实现故障自动转移。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?