美文网首页
搞懂Redis (七) - 主从复制

搞懂Redis (七) - 主从复制

作者: 高19 | 来源:发表于2022-05-08 17:43 被阅读0次

什么是主从复制

1、 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。
2、 前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点
默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有),但一个从节点只有一个主

主从复制的作业主要包括

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
  • 故障恢复: 当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量
  • 高可用基石:除了上述作用外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

主从库采用的是读写分离的方式


读写分离的主从库方案
  1. 原理
    分为全量复制和增量复制
    全量复制:发生在第一次复制时
    增量复制:只会把主从库网络断连期间主库收到的命令,同步给从库

  2. 全量复制的三个阶段
    第一阶段是 主从库建立连接、协商同步的过程
    主要是为全量复制做准备。从库和主库建立起连接,并告诉主库即将进行同步,主库确认回复后,主从库间就可以开始同步了
    具体来说,从库给主库发送psync命令,表示要进行数据同步,主库根据这个命令的参数来启动复制。psync命令包含了主库的runID和复制进度offset两个参数。runID是每个Redis实例启动时都会自动生成的一个随机ID,用来唯一标记这个实例。当从库和主库第一次复制时,因为不知道主库的runID,所以将runID设为“?”。offset,此时设为-1,表示第一次复制。主库收到psync命令后,会用fullresync响应命令带上两个参数,主库的runID和主库的复制进度offset,返回给从库。从库收到响应后,会记录下这两个参数。 注意:fullresync响应表示第一次复制采用的全量复制,也就是说,主库会把当前所有的数据都复制给从库
    第二阶段 主库将所有数据同步给从库
    从库收到数据后,在本地完成数据加载。这个过程依赖于内存快照生成的RDB文件。
    具体来说,主库执行bgsave命令,生成RDB文件,接着将文件发给从库。从库接收到RDB文件后,会先清空当前数据库,然后加载RDB文件。 这是因为从库在通过replcaof命令开始和主库同步前,可能保存了其他数据。为了避免之前数据的影响,从库需要先把当前数据库清空。在主库将数据同步给从库的过程中,主库不会被阻塞,仍然可以正常接收请求。否则,Redis的服务就被中断了。但是,这些请求中的写操作并没有记录到刚刚生成的RDB文件中。为了保证主从库的数据一致性,主库会在内存中专门的relication buffer,记录RDB文件生成后收到的所有写操作
    第三阶段 主库会把第二阶段执行过程中新收到的写命令,再发送给从库
    具体的操作是,当主库完成RDB文件发送后,就会把此时replication buffer中的修改操作发送给从库,从库再重新执行这些操作。

至此,主从库就实现同步了

相关文章

  • 搞懂Redis (七) - 主从复制

    什么是主从复制 主从复制的作业主要包括 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式 故障...

  • Redis|主从复制与哨兵机制

    1. Redis主从复制 1.1 Redis主从复制 Redis主从复制主要有两个角色,主机(master)对外提...

  • 【Redis学习笔记】13 Redis 主从复制

    1. Redis 主从复制特性 2. Redis 主从复制流程 3. Redis 主从复制操作 IP地址端口角色1...

  • Redis主从复制

    Redis主从复制 一.主从复制介绍 1.Redis复制功能介绍 1)Redis 使用异步复制。从 Redis2....

  • Redis的高可用

    Redis主从复制 什么是主从复制 Redis有三种集群方案,主从复制,哨兵,cluster集群,主从复制是指将一...

  • redis(二)

    Redis用户认证 禁用危险命令 主从复制的过程 主从复制的部署 哨兵 Redis哨兵+主从+密码 Redis哨兵...

  • Redis Sentinel 介绍与部署

    Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...

  • 高可用的redis服务搭建

    Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...

  • redis主从设置

    redis主从复制 Redis读取写入的速度都特别快,但是也会产生读压力特别大的场景。 Redis支持主从复制,主...

  • 彻底搞懂 Redis 主从复制机制

    主从复制概述 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(maste...

网友评论

      本文标题:搞懂Redis (七) - 主从复制

      本文链接:https://www.haomeiwen.com/subject/ftwhurtx.html