架构
Alauda Cache Service E1 提供两种不同的部署架构,分别用于满足特定的性能、可扩展性和高可用性要求。
-
哨兵模式:由一个主 Redis 实例和可配置的从节点组成的高可用配置。从节点异步接收更新并可处理读取请求,但读取结果可能包含过时数据。Redis Sentinel 监控实例运行状况,并在必要时协调自动故障转移。
-
集群模式:通过在多个 Redis 节点之间对数据进行分片来实现水平扩展的分布式架构。此配置可提供更高的读写吞吐量、自动故障转移能力以及智能数据分区,从而在大规模环境中实现最佳性能和可用性。
哨兵模式
哨兵模式基于 Redis 原生的主从复制实现高可用解决方案。Redis Sentinel 监控 Redis 节点,并在主节点发生故障且满足所需的法定人数和多数授权条件时,将从节点提升为主节点。主要特征包括:
- 运维简单:与分布式集群解决方案相比,该架构更易于实施和管理。
- 自动故障转移:Sentinel 检测主节点故障,并协调从节点提升为主节点。
- 垂直扩展:虽然支持垂直资源扩展,但该架构的水平扩展能力有限,因为所有写操作都必须定向到主节点。
- Sentinel 弹性:为实现完整的高可用性,必须部署多个 Sentinel 实例,以避免 Sentinel 自身成为单点故障。

客户端使用 Sentinel 查找当前主节点,并直接连接 Redis 执行数据操作。事件订阅可帮助客户端响应拓扑变化。图中显示的是节点数量示例;从节点读取是可选的,且读取结果可能包含过时数据。有关发现和重新连接行为,请参阅 Sentinel 客户端规范。
集群模式
集群模式将键分布到 16,384 个哈希槽中。每个主节点拥有其中一部分槽,并将其数据复制到同一分片内的从节点。支持集群的客户端会将命令路由到负责该键所在槽的主节点。Redis Cluster 使用基于哈希槽的分片,而不是一致性哈希;请参阅 Redis Cluster 规范。主要特征包括:
- 高可用性:该架构实现了自动节点故障检测和恢复机制,确保数据服务持续可访问。
- 动态扩展:支持在运行时添加或移除节点,并自动重新平衡数据,以适应不断变化的工作负载需求。
- 客户端路由:支持集群的客户端使用槽到节点的映射,并在拓扑发生变化时处理
MOVED和ASK重定向。工作负载的均衡情况取决于键的分布和访问模式。 - 数据分布:将数据集分区到多个节点,避免单节点内存限制,并支持大幅增大的总数据集。
- 运维复杂性:需要了解哈希槽分配、数据迁移策略以及集群拓扑管理。

该图展示了三个示例分片,每个主节点配有两个从节点。槽范围覆盖完整键空间且互不重叠。图中省略了节点之间的集群总线连接,以便清晰展示客户端路由以及主节点与从节点之间的数据复制。
架构选择指南
* 当键属于不同的哈希槽时,Redis Cluster 对多键操作存在限制