架构

目录

架构

Alauda Cache Service for Redis OSS 提供了两种独特的部署架构,旨在满足特定的性能、可扩展性和高可用性要求。

  • 哨兵模式:一种高可用配置,由一个主 Redis 实例和可配置的从节点组成。从节点提供读取可扩展性,并与主节点保持同步以确保数据一致性。Redis Sentinel 监控实例健康状况,并在必要时组织自动故障切换。

  • 集群模式:一种分布式架构,通过数据分片在多个 Redis 节点上实现水平扩展。该配置提供增强的读写吞吐量、自动故障切换能力,以及智能数据分区以优化高规模环境下的性能和可用性。

哨兵模式

哨兵模式实现了一种基于 Redis 原生主从复制的高可用解决方案。Redis Sentinel 子系统持续监控所有 Redis 实例的健康状况,并在故障场景下自动将从节点提升为主节点,以维持服务连续性。主要特征包括:

  • 操作简单性:与分布式集群解决方案相比,该架构提供了简单的实现和管理。
  • 自动故障切换:Sentinel 提供稳健的健康监控和自动故障检测,具有可配置的主从提升阈值。
  • 垂直扩展:虽然支持垂直资源扩展,但该架构的水平扩展性有限,因为所有写操作必须指向主节点。
  • 哨兵的韧性:为了实现完全的高可用性,必须部署多个 Sentinel 实例,以避免引入单一故障点。

哨兵架构图

集群模式

集群模式代表了 Redis 的全面分布式解决方案。通过 Redis Cluster 协议,系统通过使用哈希槽分配和一致性哈希算法的方式,将数据分布在多个节点上,实现水平扩展。主要特征包括:

  • 高可用性:该架构实现了自动节点故障检测和恢复机制,确保持续的数据服务可访问性。
  • 动态扩展:支持节点的实时添加或删除,并自动进行数据重平衡,以适应变化的工作负载需求。
  • 工作负载分配:在集群中实现智能负载均衡,以防止热点并确保资源的最优利用。
  • 数据分布:将数据集划分到多个节点,避免单个节点内存限制,并支持更大规模的数据集。
  • 操作复杂性:需要对分片机制、一致性哈希原理、数据迁移策略和集群拓扑管理有一定理解。

集群架构图

架构选择指南

需求哨兵模式集群模式
超过单节点内存限制的水平扩展能力
简化的部署和管理
对大数据集 (>8GB) 的支持
具有自动故障切换的高可用性
针对以读取为重的工作负载优化,支持读副本
支持跨多个键的事务操作❌*

* Redis 集群在不同哈希槽的键上对多键操作存在限制