Redis 主从复制
主从复制:是指将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点(Master/leader),后者称为从节点(Slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。
默认情况下,每台Redis服务器都是主节点,且一个主节点可以由多个从节点,但一个从节点只能由一个主节点。
1.主从复制的作用主要包括:
1.数据冗余:主从复制实现了数据定热备份,是持久化之外的一种数据冗余方式。
2.故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
3.负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务,分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
4.高可用基石:除了上述作用意外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
单台Redis最大使用内存不应该超过20g。
查看当前库的信息
127.0.0.1:6379> info replication # Replication role:master connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 127.0.0.1:6379>
2.主从配置:
一般情况下指配置从机。
127.0.0.1:6379> slaveof 127.0.0.1 6379
OK
127.0.0.1:6379>
主机可以写,从机只能读!主机中的数据都可以被从机读取。
如果是使用命令来配置的主从,这个时候如果重启了,就变回主机。只要变为从机,立马就会从主机中获取值!
3.复制原理:
Slave启动成功连接到master后会发送一个sync命令
Master接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。
- 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
- 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步。
但是只要是从新连接master,一次完全同步(全量复制)将被自动执行。我们的数据一定可以在从机中看到!!
4.宕机后手动配置主机:
在哨兵模式之前,如果主机宕机,可以在其他从节点中手动配置一个主节点。可以利用 slaveof no one 让自己变成主机。其他从节点可以手动连接到最新的这个主节点。如果这个时候原来的主机恢复了,那就重新配置。
127.0.0.1:6379> slaveof no one
OK
(3.90s)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!