Redis 主从复制
本文最后更新于:2024年3月18日 凌晨
Redis 主从复制
概念
- 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点(master/leader) ,后者称为从节点(slave/follower)
- 默认情况下,每台Redis服务器都是主节点,且一个主节点可以有0或多个从节点,但一个从节点只能有一个主节点,数据的复制是单向的,只能由主节点到从节点。
- 作用
- 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
- 读写分离:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务,分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
- 高可用基础:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
- 原理:对于主从复制来说,主从刚刚连接的时候,进行全量同步(RDB),全同步结束后,进行增量同步(AOF)
- Slave与Master建立连接。
- Slave向Master发起同步请求(SYNC)
- Master执行bgsave命令生成rdb数据快照,发给Slave
- Slave加载RDB数据快照,还原数据,主从保持一致。
- 之后Master执行的写操作都会发往Slave执行,保持数据同步。
搭建Redis主从复制集群
- 只配置从库,不用配置主库。
- 主节点可以读写,从节点只能读取。
- 主节点的修改会被同步至从节点。
配置从节点
命令行(暂时)
- 同时启动多个主节点,在需要设置为从节点的主机上配置主节点的ip和端口。
1 |
|
配置文件
- 修改从节点的配置文件,并使用该配置文件启动从节点。
- 主节点不需要修改。
1 |
|
查看服务器信息
1 |
|
意外宕机
- 主节点断开连接,从节点依旧指向主节点,此时集群只能进行读操作,如果主节点恢复连接,从节点可以自动连接主节点。
- 从节点断开连接,如果没有通过配置文件配置,则重新启动从节点会自动重置为主节点,即脱离原Redis集群。
链式主从复制
- 与传统的主从复制不同,所有的从节点不再全部连在主节点上,从节点可以连接在从节点上,形成一条链路,该链路的起点是主节点,终点是从节点。
- 中间的节点为从节点,但可在主节点宕机时,手动配置为主节点,并提供写操作。
1 |
|
- 如果主节点恢复连接时,集群并不会回复宕机前的主从状态,需要手动配置。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!