首页 > 数据库 >Redis主从复制原理

Redis主从复制原理

时间:2024-10-18 16:13:02浏览次数:6  
标签:主从复制 快照 Redis 命令 复制 原理 节点

Redis 主从复制(Master-Slave Replication)是 Redis 提供的一种数据冗余方案,用于实现数据的热备份和高可用性。其原理可以概括为以下几个关键点:

  1. 角色定义

    • 主节点(Master):处理写操作,并将其写操作同步给从节点。
    • 从节点(Slave):通常只处理读操作,从主节点接收数据同步。
  2. 复制过程

    • 当从节点连接到主节点时,它会发送一个 SYNC 命令给主节点,请求数据同步。
    • 主节点接收到 SYNC 命令后,会开始执行 BGSAVE 操作,生成一个 RDB 快照文件,并在新文件中继续写入后续的命令。
    • 主节点将其操作缓存起来,直到 RDB 快照文件生成完成。
    • 主节点将 RDB 快照文件发送给从节点,从节点接收并载入这个快照文件,从而复制主节点的数据。
    • 主节点将缓存的命令发送给从节点,从节点执行这些命令,以保证数据的一致性。
  3. 数据同步方式

    • 全量复制:在初次复制或者无法进行部分复制的情况下,主节点会执行 BGSAVE 并发送整个数据集给从节点。
    • 部分复制:在网络中断或其他情况下,从节点可以请求只同步中断期间主节点执行的写命令,这是一种更高效的复制方式。
  4. 命令传播

    • 从节点接收主节点的 RDB 快照后,主节点会持续地将新执行的写命令发送给从节点,这个过程称为命令传播。
  5. 心跳机制

    • 主从节点之间通过定期发送 PING 命令来检测对方是否在线,以保持连接的活跃性。
  6. 数据一致性

    • Redis 保证最终一致性。在主从复制过程中,由于网络延迟或其他原因,主从节点间的数据可能会有短暂的不一致。
  7. 读写分离

    • 在主从复制架构中,通常主节点处理写操作,从节点处理读操作,以此来提高系统的读性能和可用性。
  8. 故障恢复

    • 当主节点发生故障时,需要人工或自动(借助哨兵系统)将从节点提升为主节点,以实现故障恢复。

Redis 主从复制的原理是构建在发布/订阅模式请求/响应协议之上的。主节点不需要知道从节点的任何信息,而从节点需要知道主节点的地址和端口。在实际部署中,主从复制可以提供数据备份、故障恢复和读写分离等多重好处。

标签:主从复制,快照,Redis,命令,复制,原理,节点
From: https://www.cnblogs.com/fun-seeker/p/18474500

相关文章

  • Spring 事物管理与原理
    定义与描述Spring有事物传播属性,用于保证数据的统一提交与统一回滚数据库有事物特性(ACID)与数据隔离级别,用于处理脏读、幻读、不可重复读Spring事物管理,是指系统在多线程情况下,配合数据库事物完成数据的统一提交与统一回滚。网上很多关于事物的描述,都是基于数据库实现的。......
  • Redis 集群部署
    Redis集群部署环境系统:CentOS7版本:redis-7.2.6下载地址:https://download.redis.io/releases/主从集群结构三个节点:一个主节点,两个从节点IPPORT角色192.168.93.1006379master192.168.93.1016379slave192.168.93.1026379slave步骤安装前置依赖......
  • 【人工智能-初级】第5章 支持向量机(SVM):原理解析与代码实现
    文章目录一、支持向量机简介二、支持向量机的数学原理2.1线性可分支持向量机2.2软间隔与非线性支持向量机2.3核函数三、SVM的优缺点3.1优点3.2缺点四、Python实现支持向量机4.1导入必要的库4.2生成数据集并进行预处理4.3创建SVM分类器并进行训练4.4模型预测与......
  • 支持向量机SVM原理详解
    SVM原理详解1、超平面2、SVM原理1.问题定义2.分类决策得到约束条件3.最大化间隔4.优化目标3、凸优化问题1.原始优化问题优化目标约束条件2.拉格朗日乘子法3.拉格朗日函数分析4.求解对w......
  • 10093-基于STM32的无线串口小型直流电机调速器设计(仿真+原理图+源代码工程+详细介绍说
    10093-基于STM32的无线串口小型直流电机调速器设计(仿真+原理图+源代码工程+详细介绍说明书+proteus)功能描述:直流电机的调速器设计设计,需要设计一个调速与控制系统,是设备可以直接控制和读取信息,并且显示。①设计直流电机转速控制系统;②通过按键调节直流电机转速;③可以在......
  • 10093-基于STM32的无线串口小型直流电机调速器设计(仿真+原理图+源代码工程+详细介绍说
    10093-基于STM32的无线串口小型直流电机调速器设计(仿真+原理图+源代码工程+详细介绍说明书+proteus)功能描述:直流电机的调速器设计设计,需要设计一个调速与控制系统,是设备可以直接控制和读取信息,并且显示。①设计直流电机转速控制系统;②通过按键调节直流电机转速;③可以在......
  • 数据库系统原理——第三章 关系数据库标准语言SQL
    @目录1.SQL的特点2.SQL的组成3SQL语句3.1数据库的基本操作3.2基本表的定义、修改、删除3.3索引的建立与删除3.4数据更新3.5数据查询3.5.1单表查询3.5.2连接查询3.5.2.1内连接(INNERJOIN)3.5.2.2左连接(LEFTJOIN)3.5.2.3右连接(RIGHTJOIN)3.5.2.4全连接(FULLJOIN)3.5.3嵌套查询3.5.4集......
  • Admin整体底层实现原理
    Admin整体底层实现原理1.启动项目加载每个app目录下的admin.pyapp01/admin.pyadmin.site.register(models.Depart,admin.ModelAdmin)admin.site.register(models.UserInfo)1.1Admin文件的加载过程如何加载admin文件的呢?django/contrib/admin/apps具体代码如下:classAdm......
  • 深入解析React DnD拖拽原理,轻松掌握拖放技巧!
    深入解析ReactDnD拖拽原理,轻松掌握拖放技巧! 我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。。本文作者:霁明一、背景1、业务背景业务中会有一些需要实现拖拽的场景,尤其是偏视觉方向以及......
  • VU9P处理板设计原理图:412-基于单XCVU9P+双DSP C6678的双FMC接口 100G光纤传输加速计算
    基于单XCVU9P+双DSPC6678的双FMC接口100G光纤传输加速计算卡  一、板卡概述板卡包括一片Xilinx FPGA  XCVU9P,两片 TI 多核DSP TMS320C6678及其控制管理芯片CFPGA.设计芯片满足工业级要求。FPGA VU9P 需要外接4路QSFP+(100Gbps)及其两个FMC HPC接......