Redis 企业版可以是单个 Redis 服务器数据库或集群。这使 Redis 企业版数据库可以通过分片横向扩展到多个服务器,或者复制数据,从而使用 Redis 企业版副本确保高可用性。分片是一种数据库分区,它将大型数据库分成更小、更快、更易于管理的部分。这些较小的部分称为数据分片。通过分片或分区,您不再局限于将数据存储在单个计算机的内存中。分片的另一个优点是能够使用多个内核的计算能力。
在 Redis 企业版中,集群是一组云实例、虚拟机/容器节点或裸机服务器,它们使您能够在跨这组服务器共享的内存/存储池中创建任意数量的 Redis 数据库。当创建或删除新数据库时,集群不需要进行向上/向外(或向下/向内)扩展。只有在达到预定义的限制阈值之一时才会触发扩展操作,例如内存、CPU、网络和存储 IOPS。
要创建分片集群,您需要首先指定分片的数量。完成此操作后,您的数据将自动进行分片或划分成组,并放置在最佳节点上。
在任何给定时间,Redis 企业版集群节点都可以包含以下类型中的零到数百个 Redis 数据库
- 简单数据库,即单个主分片
- 高可用性 (HA) 数据库,即一对主分片和副本分片
- 集群数据库,其中包含多个主分片,每个主分片管理数据集的一个子集(或者用 Redis 的术语来说,管理不同的“哈希槽”范围)
- HA 集群数据库,即多个主/副本分片对
每个数据库都可以构建成几种形式
- Redis on DRAM 数据库
- Redis on Flash 数据库,其中 Flash(SSD 或持久性内存)用作 DRAM 扩展器
每个数据库都可以通过多种方式访问
- 数据库端点: 只需将您的应用程序连接到您的数据库端点 (完全限定域名上的唯一 URL 和端口),Redis 企业版将透明地处理所有扩展和故障转移操作。
- 哨兵 API: 使用哨兵协议连接到集群中的正确节点以访问您的数据库。
- OSS 集群 API: 使用集群 API 直接连接到集群的每个分片,而无需任何额外的跃点。
来自不同应用程序和用户的多个数据库可以在同一个 Redis 企业版集群和节点上运行,同时通过多租户完全隔离。
高可用性
规划灾难恢复和零停机时间意味着在单个区域或多个区域中拥有 Redis 企业版集群的副本集。高可用性集群是一组主机,它们合并为单个系统以防止停机。
如果高可用性集群中的一个服务器出现故障,关键任务应用程序将立即转移到另一个服务器,只要检测到故障。Redis 企业版将确保始终在不同的节点上创建副本分片进程,以实现高故障转移。如果节点出现故障,Redis 企业版将确保其他可用节点上的副本分片进程成为新的主分片。
高可用性集群将利用多个系统以及已集成的多个主节点和副本节点。因此,如果故障导致一个系统出现故障,则可以有效地利用另一个系统来维护正在使用的服务或应用程序的连续性。
无共享、线性可扩展、多租户、对称架构
Redis 企业版集群
Redis 企业版集群构建在数据路径组件(即代理和分片)与控制/管理路径组件(即集群管理进程)之间的完全分离之上,这带来了许多重大优势
- 性能: 数据路径实体无需处理控制和管理职责。Redis 企业版架构保证任何处理周期都专门用于为用户的请求提供服务,从而提高整体性能。例如,Redis 企业版集群中的每个 Redis 分片都像一个独立的 Redis 实例一样工作。分片不需要监控其他 Redis 实例,也不需要处理故障或分区事件,并且不知道哪些哈希槽正在被管理。
- 可用性: 即使在进行分片、重新分片和重新平衡时,应用程序也可以继续从其 Redis 数据库访问数据。无需进行任何手动更改来确保数据访问。
- 安全性: Redis 企业版防止通过常规 Redis API 执行配置命令。任何配置操作都允许通过遵循基于角色的授权控制的安全 Redis CLI、UI 或 API 接口进行。 基于代理的架构确保只有经过认证的连接才能与每个分片建立连接,并且 Redis 分片只能接收经过认证的请求。
- 可管理性: 数据库配置、配置更改、软件更新等操作都通过单个命令(通过 UI 或 API)以分布式方式完成,并且不会中断用户流量。
- 可扩展性:数据库通过将数据集分布在多个节点、服务器和集群中进行横向扩展。扩展涉及将分区数据库实例的副本复制到多个节点。
集群组件
Redis 企业版集群构建在对称架构之上,所有节点都包含以下组件
- Redis 分片: 一个开源 Redis 集群或开源 Redis 实例,它具有作为数据库一部分的主角色或副本角色。
- 零延迟代理: 代理在集群的每个节点上运行,是用 C 语言编写的,并且基于一种直通、多线程、无锁、无状态架构。代理处理以下主要功能
- 向应用程序/用户隐藏集群复杂性
- 维护数据库端点
- 请求转发
- 通过 SSL 管理数据加密
- 提供强大的基于客户端的 SSL 认证
- 通过管道和连接管理启用 Redis 加速
- 集群管理器: 此组件包含一组分布式进程,它们共同管理整个集群生命周期。集群管理器实体与数据路径组件(代理和 Redis 分片)完全分离,并且具有以下职责
- 数据库配置和取消配置
- 数据库配置和取消配置,以实现最佳资源利用率
- 自动扩展以处理峰值工作负载
- 自动重新分片以保证高吞吐量、低延迟、实时性能
- 自动重新平衡以保证高吞吐量、低延迟、实时性能
- 资源管理,监控整个系统的运行状况
- 节点监视器,它监控在给定 Redis 节点上运行的所有进程,并触发分片故障事件
- 集群监视器,它负责 Redis 集群节点的运行状况,并触发节点故障事件
- 安全的 REST API: 在集群模式下,对 Redis 企业版的管理和控制操作都是通过专用且安全的 API 执行的,该 API 能够抵抗攻击,并提供对集群管理员操作的更好控制。此接口的主要优势之一是能够以极高的速率配置和取消配置 Redis 资源,几乎不依赖于底层基础设施。这使其非常适合基于微服务的架构。
为了优化 Redis 企业版集群中的资源,您应该:
- 采用可以扩展到数千个数据库实例的平台,以支持跨不同工作负载的大量并发性
- 使用多租户,允许多个数据库端点在单个集群中运行,从而最大限度地提高基础设施利用率,启用端点级数据库优化,避免性能下降,并保护数据库安全
- 使用智能存储分层,使频繁使用的“热”数据保持在内存中,而较少使用的“冷”数据则进入闪存、SSD、旋转存储或磁带,系统会自动平衡并在其他方面管理数据在物理上的持久化位置
- 在单独的租户、节点或集群上运行测试、开发和生产数据库,提供工作负载隔离,并允许独立的配置、管理和优化,以满足其各种扩展、性能和可用性需求
常见问题解答
如何使用 Redis 命令?
要启动 Redis 客户端,请打开终端并键入命令 redis-cli。这将连接到您的本地服务器,现在您可以运行任何命令。在上面的示例中,我们连接到在本地机器上运行的 Redis 服务器,并执行命令 PING 以检查服务器是否正在运行。
什么是线性可扩展性?
线性可扩展性意味着资源数量与数据库吞吐量以相同的比例增加,并且以确定性方式进行。例如,将您的集群资源增加 50% 将转化为吞吐量增加 50%。Redis 企业版支持开源 集群 API,通过简单地添加分片和节点,可以实现无限的、线性扩展 。
Redis 企业版软件如何实现高可用性?
Redis 企业版软件通过无盘复制、即时故障检测和跨机架、区域和地理位置的单秒级故障转移等技术,提供五九(99.999%)的正常运行时间,实现不间断的高可用性。与竞争技术相比,Redis 企业版在提供高可用性的同时,成本更低。Redis 企业版软件自动化集群管理,确保 Redis 集群和 Redis 客户端始终可用。Redis 企业版软件提供多种方法来确保数据一致性和可靠性,包括主动-主动数据复制、AoF(追加到文件)持久化和快照.
Redis Labs 与 Redis 是同一家公司吗?
Redis Labs 在 2021 年更名为 Redis。我们更名是为了强调 Redis Ltd(公司)负责源代码可用的 Redis 和 Redis 企业版。作为开源 Redis 的官方赞助商,Redis 了解开源 Redis 对开发者社区的重要性,并致力于确保开源 Redis 始终免费提供。Redis 还开发了市场上最可扩展、可靠和高可用的内存中实时数据平台,即Redis 企业版软件和Redis 云.
想了解更多?
观看我们最近的科技讲座,主题为“购买与构建:Redis 开源和 Redis 企业版的集群和供应”。
下一节 ► 真正的线性可扩展性