面向高可用性的 NoSQL 数据库
专为自动化数据库弹性设计,降低硬件故障与云端宕机风险
Redis 企业版是一款自管理的实时数据平台,能够释放 Redis 在大规模应用中的全部潜力,并确保 99.999% 的高可用性。
Redis 企业版的高可用性基于数据复制机制,同时,自动故障转移、备份和恢复等功能也在保障应用高可用服务等级协议(SLA)方面发挥重要作用。
数据复制是指在多个 Redis 企业版服务器上存储相同的数据副本。Redis Enterprise 通过数据复制机制确保数据安全,即使某些服务器发生故障,应用仍能不间断运行,无需停机,始终保持高可用性。
高性价比的数据复制
与大多数 NoSQL 数据库部署类似,开源 Redis 采用三副本机制来保障高可用性。从整体架构来看,第一副本用于存储数据集,第二副本用于故障转移,第三副本在发生网络分区时充当仲裁者。然而,由于 DRAM 成本高昂,维护三副本模式的费用极为可观。
Redis 企业版通过双副本机制 提供完整的高可用(HA)系统,大幅降低成本。其仲裁机制在节点级别进行,通过集群中采用奇数个节点来实现自动判定。
下图展示了在 AWS 上运行 90GB 高可用架构 时,开源 Redis 采用三副本模式 VS Redis Enterprise 采用两副本 + 仲裁节点模式的基础设施成本对比:
纯内存复制
Redis 企业版采用无磁盘复制(纯内存复制)机制,在主服务器和副本服务器上均实现完整的数据冗余,如下图所示。
在一项内部复制基准测试中,使用 52GB DRAM(19GB RDB) 进行测试,基于 2× r3.2xlarge 实例,测试结果如下:
此外,Redis 企业版采用 PSYNC2 进行核心操作,以确保复制链路的持续维护,便于执行计划内故障转移或分片迁移。

自动故障转移
Redis 企业版集群具备容错性和高可用性。当主服务器或节点发生故障时,Redis 企业版的自愈机制会自动检测硬件故障,选举副本作为替代,并将其提升为新的主服务器。同时,Redis 企业版还会自动切换所有客户端连接,整个故障转移过程在数秒内完成,无需人工干预。Redis 企业版集群通过两种监控机制来检测故障:
- 节点监控(Node Watchdog):监控特定节点上的所有进程。例如,当某个分片无响应时,节点监控会触发分片故障转移事件。
集群监控(Cluster Watchdog):负责监测集群节点的健康状态,并使用 Gossip 协议 管理集群节点的成员状态。例如,集群监控可以触发节点故障事件或检测网络分裂。
这两种监控机制都是分布式集群管理组件的一部分,并运行在集群的每个节点上。故障检测必须由集群内部的组件负责,以避免出现如下图左侧的情况:在此示例中,监控组件位于错误的网络分区,导致无法触发故障转移。
一旦检测到故障事件,Redis 企业版集群会自动透明地运行一系列内部分布式流程,将相关的分片(Shard)和端点(Endpoint)(如有需要)故障转移至健康的集群节点。同时,如果必要,系统还会通过不同的代理(Proxy)重新路由用户流量。
Redis 企业版集群为嘈杂(公有云)和安静(虚拟私有云、本地部署)环境提供即开即用的高可用性(HA)配置文件。我们发现,过于频繁地触发故障转移可能会导致系统稳定性问题。而在安静的网络环境中,Redis 企业版集群可以轻松调整,以确保在所有故障场景下,故障转移时间始终保持在个位数秒(<10 秒)以内。
多可用区/机架部署
借助 Redis 企业版,您可以在 AWS、Google Cloud 和 Microsoft Azure 提供的大约 90 个区域中进行选择,确保应用靠近用户,从而实现亚毫秒级响应时间。
Redis 企业版还专为多区、多区域和多云环境中的 Redis 企业版集群提供逐级增强的地理容灾能力。它支持多可用区/机架的集群配置。在此模式下,集群节点会被标记为其所在的可用区/机架,并确保同一分片(Shard)的主服务器和副本 Redis 进程不会部署在相同的可用区/机架上。
在多可用区/机架环境中运行 Redis 企业版需要满足以下条件:
- 至少三个集群节点,并且总数必须为奇数。
至少三个可用区/机架,并且总数必须为奇数。
- 任何单个可用区/机架的节点数量必须少于所有其他可用区/机架的节点总和,以确保在某个可用区/机架发生故障时,集群中仍有大多数节点保持运行。
- 可用区/机架之间的网络延迟应小于 10ms,以确保集群故障检测机制能够正常运行。在大多数情况下,系统决策仅在真实故障发生时触发,不会被网络波动影响。如果可用区/机架之间的延迟超过 10ms,则应考虑采用Active-Passive或Active-Active部署模式。
以下示例展示了 Redis 企业版在云端的多可用区配置:

正如您所见,该示例符合上述所有条件:
- 节点数量为奇数(7 个)。
可用区数量为奇数(3 个)。
- 每个可用区的节点数量均为少数派。
- 在所有主要公有云中,同一区域内可用区之间的网络延迟始终小于 10ms。
Redis 企业版的多云集群地理容灾能力
云服务提供商的故障影响范围各不相同,可能是临时的容量限制,也可能是彻底的宕机,这些都可能对应用部署造成严重影响。通过将数据分布到多个云环境,企业可以提高数据库和应用的可靠性,防止数据丢失。
Redis 企业版多云集群支持跨多个公有云提供商(AWS、Google Cloud、Azure)和多个区域部署 Redis 企业版集群。借助多云集群,您可以充分利用各大云厂商的独特工具和服务,而无需承担管理跨云数据复制和迁移的复杂性。此外,多云集群能够在更多云区域提供低延迟访问,满足数据主权要求,同时确保高可用性。
Redis 企业版会自动在多个云之间分布数据,以增强容错能力,确保应用始终可用。
除了数据库的高可用性,企业还应制定应用级的容灾方案,以最大程度提升多云环境下的应用可靠性和容错能力。应用应分布在多个云端,并具备在必要时自动切换的能力,以满足高可用性系统的需求。
Redis企业版
将更多设想变为现实