首页 > 数据库 >Redis 架构深入:主从复制、哨兵到集群

Redis 架构深入:主从复制、哨兵到集群

时间:2024-03-10 11:47:41浏览次数:21  
标签:主从复制 架构 Redis 哨兵 集群 哈希 数据 节点

大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式

前言:

设想一下,你的咖啡馆在城市中太受欢迎,导致每天都人满为患。为了缓解这种压力,你决定在其他地方开设分店,这样顾客就可以在附近的分店享受咖啡,而不必涌向一个地方,这就好比 Redis 的主从复制,让数据备份并允许多个地方进行读取。

但这还不够,因为你需要确保当主要的咖啡馆遇到问题时,例如突然断电,有其他分店能够迅速接手,成为新的主要店铺,继续为顾客提供服务。这就像 Redis 的哨兵系统,它会自动检测故障并进行转移,确保服务始终在线。

最后,随着咖啡馆连锁店的增长,每家店都开始独立运作,甚至可能有自己的特色饮品和优惠活动,同时仍然保持整体的协调和一致性。这就是 Redis 集群的工作方式,它将数据分片到不同的节点,每个节点都可以独立处理请求,但都是整个系统的一部分。

现在,让我们深入探讨 Redis 如何通过主从复制、哨兵和集群来确保它的强大性能和高可靠性。

主从复制

主从复制基本概念

在日常工作中,我们都知道团队合作的重要性。就像团队中有领导者和执行者,Redis 也采用了一种类似的策略 —主从复制,使其能够更有效地处理数据。

什么是主从复制?

主从复制是一种允许多个 Redis 服务器(节点)协同工作的策略。其中,一个服务器作为“主节点”,负责接受所有写操作。其他服务器则作为“从节点”,复制并存储主节点的数据。这样,从节点可以为读操作服务,从而分散主节点读取压力。

简单图示:

主从复制的工作原理

Redis 的主从复制功能使得一个或多个从节点可以复制一个主节点的全部数据。主节点负责进行写操作,而从节点则可以用来进行读操作,从而分担读的负载。

主从复制流程图

步骤说明:

从节点首先执行 REPLICAOF ip port 命令,准备复制主节点的数据。

第一步:连接与同步请求

  • 从节点与主节点建立 TCP 连接,并正式请求同步数据,发送 PSYNC ? -1。

  • 主节点接收到请求后,向从节点回复 FULLRESYNC runid offset ,做好开始传输 RDB 数据的准备。

第二步: RDB 文件同步

  • 主节点执行 bgsave 命令,生成当前数据的快照—也就是 RDB 文件。

  • 主节点随后将这个 RDB 文件传输给从节点。

  • 从节点收到 RDB 文件后,开始加载到自己的数据库中。

第三步 : 持续命令同步

  • 之后,每当主节点有新的写命令,它都会立即传输给从节点并同时将新命令追加到复制缓冲区中。

  • 从节点持续接收并执行这些命令,确保与主节点的数据始终保持同步。

断线重连与部分同步

在实际应用中,因为网络不稳定、系统资源限制等因素,Redis 主从节点间的连接有时会遭遇中断。为了应对这些突发情况并确保数据同步不被中断,Redis 设计了一套智能的同步恢复机制: 部分同步

断线重连与部分同步流程图

步骤说明:

  1. 标签:主从复制,架构,Redis,哨兵,集群,哈希,数据,节点
    From: https://www.cnblogs.com/xiaokang-coding/p/18063911

相关文章

  • Redis 常见数据类型(对象类型)和应用案列
    前言:每次你在游戏中看到玩家排行榜,或者在音乐应用中浏览热门歌单,有没有想过这个排行榜是如何做到实时更新的?当然,依靠Redis即可做到。在技术领域,我们经常听到「键值存储」这个词。但在Redis的世界里,这只是冰山一角。Redis的对象,不仅仅是简单的数据,它们是为各种任务量身定......
  • 全面解析 Redis 持久化:RDB、AOF与混合持久化
    前言:每次你在游戏中看到玩家排行榜,或者在音乐应用中浏览热门歌单,有没有想过这个排行榜是如何做到实时更新的?当然,依靠Redis即可做到。在技术领域,我们经常听到「键值存储」这个词。但在Redis的世界里,这只是冰山一角。Redis的对象,不仅仅是简单的数据,它们是为各种任务量身定......
  • ISA指令集架构简介与蜂鸟E203处理器公开资料整合
    ISA(InstructionSetArchitecture)指令集架构可分为CISC与RISC:CISC(ComplexInstructionSetComputer)计算机复杂指令集,不仅包含了处理器常用的指令,还会含有许多不常用的特殊指令。这会导致其指令集的数目较多,故称为复杂指令集。RISC(ReducedInstructionSetComputer)计算机精简......
  • 基于EXO λ驱动的可编程分子信号传输架构和DNA电路中的反应物再生策略四节点DNA电路与
    为了解决过程中信号衰减的问题,利用独特的环形空间拓扑结构和EXOλ的水解特性,实现了EDRR策略EXOλ的特性如图1a所示,当EXOλ水解底物,锥形通道的宽端,可以从5'的钝端或凹端嵌入DNA链,从而连续和快速水解,在5'端有磷酸修饰的DNA链,而互补链则从锥形中穿出通道。它的环形空间拓扑结......
  • Mac上安装主从模式&哨兵模式Redis(5.0.9)
    1、服务节点说明Master节点ip和端口为:127.0.0.1:6380Slave节点ip和端口为:127.0.0.1:6381;127.0.0.1:6382哨兵节点说明:127.0.0.1:26380;127.0.0.1:26381;127.0.0.1:26382Redis哨兵集群拓扑图.png2、配置主从模式2.1、redis修改配置2.1.1、Master的redis.conf设置哪些IP......
  • Redis2
    Set类型在Redis中,我们可以将set类型看作为没有排序的字符集合。和List一样,我们也可以在该类型的数据上执行添加、删除或判断某一元素是否存在等操作。和List不同的是,Set集合中不允许出现重复的元素。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即在服务器端完成多......
  • Ubuntu安装Redis
    Ubuntu安装RedisRedis在Ubuntu上是一个开源的内存型数据库,提供了快速、可扩展的键值存储。它使用ANSIC语言编写,支持网络,可以基于内存,也可以持久化。Redis不仅是一个key-value存储系统,还支持丰富的数据类型,如String、list、set、zset、hash等。这使得Redis能够适应不同场景下的存......
  • 使用 Amazon Bedrock 上的 Claude 3 将架构图转换为 CDK/Terraform 代码
    概述在云原生领域,基础设施即代码(IaC)对于开发人员和DevOps团队来说是一种不可避免的实践。最近,AmazonBedrock上线了Claude3Sonnet模型和这个模型的图像转文本能力。这无疑开启了一个新时代,也就是实现架构图与IaC工具的无缝融合,如亚马逊云科技云开发工具包(CDK)或......
  • [Redis] 02-缓存和数据库数据一致性问题
    经过一番排查,确认服务器的性能瓶颈是在数据库。给服务器加上Redis,让其作为数据库的缓存。这样,在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用再去查询数据库,从而减轻数据库的压力,提高服务器的性能。一、缓存模型二、数据库和缓存的数据不一致问题更新数据时,数据......
  • [Redis] 01-Redis快速入门
    一、Redis简介Redis属于键值对(key-value)数据库Redis中所有的数据都是以key-value的形式存储在内存中的所以读写Redis非常的快,在高并发的场景下,性能非常的好二、Redis服务端(redis-server)的安装省略。建议使用docker安装。Docker安装redis(保姆级教程&图文并茂)-腾讯......