Redis Enterprise集群由部署在数据中心内或跨本地可用性区域延伸的相同节点组成。Redis Enterprise架构由管理路径(如下图1的蓝色层所示)和数据访问路径(如下图1的红色层所示)组成。

  • 管理路径包括集群管理器,代理和用于程序管理的安全REST API / UI。简而言之,集群管理器负责编排集群,放置数据库分片以及检测和缓解故障。代理有助于扩展连接管理。
  • 数据访问路径由主Redis碎片和从属Redis碎片组成。客户端在主分片上执行数据操作。主碎片使用内存复制来维护从碎片,以防止可能导致无法访问主碎片的故障。

Redis概念与架构

图1 Redis企业节点,其中蓝色层代表管理路径,红色图块代表数据访问路径,其中Redis为分片。

Redis Enterprise的高可用性 

Redis Enterprise使用内存中复制来维护主副本和从副本。Redis Enterprise带有各种监视程序,可以检测并防止多种故障类型。在诸如节点,网络,进程故障之类的故障导致无法访问主副本的情况下,Redis Enterprise会自动将从副本升级为主副本,并将客户端连接透明地重定向到新的主副本。

除了集群内复制外,Redis Enterprise还具有内置的基于WAN的复制,用于跨多个数据中心的Redis部署。Redis Enterprise中基于WAN的复制机制旨在防止整体数据中心或更大范围的网络故障。

扩展数据库 

每个Redis Enterprise群集可以包含多个数据库。在Redis中,数据库表示属于单个应用程序,租户或微服务的数据。Redis Enterprise的构建可将每个集群扩展到100个数据库,以提供灵活高效的多租户模型。

每个数据库可以包含很少或很多Redis分片。分片对Redis应用程序是透明的。数据库中的主分片处理给定键子集的数据操作。每个数据库中的分片数量是可配置的,并且取决于应用程序的吞吐量需求。可以将Redis Enterprise中的数据库重新分片到更多Redis分片中,以扩展吞吐量,同时保持亚毫秒级的延迟。重新分片无需停机。


Redis概念与架构

图2 Redis Enterprise将主副本(M)和从属副本(S)放置在单独的节点,机架和区域中,并使用内存中复制来防止数据出现故障。

在Redis Enterprise中,每个数据库都有一定的RAM配额。配额不能超过节点上可用RAM的限制。但是,使用Redis Enterprise Flash,RAM扩展到本地闪存驱动器(SATA,NVMe SSD等)。数据库的总配额可以同时利用RAM和闪存驱动器。管理员可以选择RAM与闪存的比率,并在数据库生存期内的任何时间进行调整,而无需停机。

使用Flash上​​的Redis,不是将给定碎片的所有键和数据存储在RAM中,而是将访问频率较低的值推送到闪存。如果应用程序需要访问闪存中的值,则Redis Enterprise会自动将值带入RAM。根据所使用的闪存硬件,应用程序在将值从闪存返回到RAM时会遇到稍高的延迟。但是,一旦该值位于RAM中,随后对同一值的访问就会很快。

Redis Enterprise的数据持久性 

Redis Enterprise有两个耐用性选项:

  • 基于磁盘的持久性:Redis Enterprise仍在磁盘上维护持久性副本。就像基于磁盘的系统一样,此IO路径也放置在速度较慢且持久的网络连接存储设备上。Redis数据库提供了可调选项来维护此持久副本,并通过频繁的定期写操作一直更新到每个写操作。
  • 基于复制的持久性:Redis Enterprise还维护一个副本(从属碎片)以实现持久性。这种复制的耐用性可防止节点,机架或区域发生故障。与网络连接的存储写操作相比,复制持久性提供了更好的写性能。这意味着在计划外中断下,与磁盘上的持久副本相比,副本更可能是最新的。为了充分利用复制持久性,Redis提供了WAIT命令。WAIT确保写入可以等待确认,直到多个副本确认该写入。这样可以确保在副本上用WAIT确认的写操作是持久的,即使节点着火了也永远不会回到群集上。

 

相关文章: