赞
踩
大家好,我是小康,今天我们来聊下 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 设计了一套智能的同步恢复机制: 部分同步。
断线重连与部分同步流程图
步骤说明:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。