就是将一台 redis 服务器的数据,复制到其他的 redis 服务器,前者为主节点(master/leader),后者称为从节点(slave/follower),数据的复制是单向的,只能从主节点到从节点,一般 master 以写为主,slave 以读为主。
Redis 主从复制可以根据是否是全量分为全量同步和增量同步
Redis全量复制一般发生在 Slave 初始化阶段,这时 Slave 需要将 Master 上的所有数据都复制一份
具体步骤如下:
完成上面几个步骤后就完成了从服务器数据初始化的所有操作,从服务器此时可以接收来自用户的读请求。
Redis 增量同步是指 Slave 初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。
增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。
Redis 主从服务器刚刚连接的时候,会进行全量同步;全同步结束后,再进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。
数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复,实际上是一种服务的冗余
负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写功能,由从节点提供读功能,分担服务器负载,尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高 Redis 服务器的并发量
高可用(HA)基石:主从复制还是哨兵和集群能够实施的基础