Redis主从复制详解。

本文详细解析Redis的主从复制过程,包括全量复制、增量复制,以及如何创建主从复制关系。Redis主从复制能分担读压力,提供数据冗余,提升容灾能力。但主节点故障会导致写操作不可用,需要手动或借助Sentinel实现故障转移。
摘要由CSDN通过智能技术生成

​ Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制。

​ 同时redis支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。
在这里插入图片描述

一. 主从复制过程

1. 全量复制:

Redis全量复制一般发生在Slave启动阶段,这时Slave需要将Master上的所有数据都复制一份:

  1. 从服务器连接主服务器,并向其发送SYNC命令。
  2. 主服务器接收到命令后,执行bgsave命令(RDB持久化)保存快照并使用缓冲区记录此后执行的所有写命令。
  3. 主服务器向从服务器发送生成的rdb文件和记录在缓冲区的命令。
  4. 从数据库收到文件后删除旧数据,将新数据载入。并执行缓冲区的命令

不了解redis持久化的可以先看:redis持久化RDB和AOF

在这里插入图片描述

2. 增量复制:

​ 主服务器和从服务器正常工作后,将主服务器的写操作同步到从服务器上。

创建主从关系及数据复制过程:

  1. 保存主节点信息
  2. 从节点与主节点建立网络连接。从节点会建立一个socket套接字,专门用于接受主节点发送的复制命令。

如果从节点无法建立连接,定时任务会无限重试直到连接成功或者执行slaveof no one取消复制。

  1. 连接建立成功后从节点发送ping请求进行首次通信,其目的是:
  • 检测主从之间网络套接字是否可用
  • 检测主节点当前是否可接受处理命令

若ping不通或超时,从节点断开复制连接,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值