【Redis—主从复制】

概念

  • 如果把数据都存储到一台服务器上,当服务器出现宕机后,数据会丢失。而把数据备份到多台服务器上,那么当一台服务器发生故障后,其他服务器仍然可以继续提供服务。由于是多台服务器,所以服务器之间的数据要保持一致性
  • 于是Redis提供了主从复制模式,采用的是「读写分离」的方式。主服务器负责读写,从服务器一般只负责读

注意:第一次同步是全量同步的方式。

在这里插入图片描述

主从服务器同步流程

  • 使用replicaof(Redis 5.0 之前使用 slaveof)命令形成主服务器和从服务器的关系。
# 服务器 B 执行这条命令,此时服务器 B 就会变成服务器 A 的「从服务器」
replicaof <服务器 A 的 IP 地址> <服务器 A 的 Redis 端口号>

主从服务器间的第一次同步的过程可分为三个阶段:

  • 第一阶段是建立链接、协商同步;
  • 第二阶段是主服务器同步数据给从服务器;
  • 第三阶段是主服务器发送新写操作命令给从服务器。

具体流程
在这里插入图片描述

  1. 执行了 replicaof 命令后,从服务器就会给主服务器发送psync命令,该命令包含主服务器的 runID(每个Redis服务器启动的唯一标识) 复制进度 offset。第一次同步runID="?",offset=-1
  2. 主服务器收到 psync 命令后,会用 FULLRESYNC (全增量)作为响应命令返回给对方。
  3. 主服务器会执行 bgsave 命令来fork一个子进程生成 RDB 文件(异步的,不会阻塞主线程),然后把文件发送给从服务器。
  4. 从服务器收到 RDB 文件后,会先清空当前的数据,然后载入 RDB 文件。
    • 在此期间 写操作命令并没有记录到刚刚生成的 RDB 文件中,这时主从服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呆鸟_coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值