本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ElastiCache 适用于 Redis 组件和功能
接下来,您可以找到 Amazon ElastiCache 部署的主要组件的概述。
主题
ElastiCache 节点
节点是 ElastiCache 部署的最小构建块。一个节点可独立于其他节点存在,也可与其他节点之间有某种关系。
节点是固定大小、与网络连接的安全 RAM 区块。每个节点都运行在您创建集群时选择的引擎和版本的实例。如果需要,您可以将集群中的节点纵向扩展或缩减到不同的实例类型。有关更多信息,请参阅 针对 Redis ElastiCache 进行扩展 。
一个集群中的每个节点都是相同的实例类型且运行相同的缓存引擎。每个缓存节点都有自己的域名服务 (DNS) 名称和端口。支持多种缓存节点类型,每种可有不同的关联内存量。有关受支持的节点实例类型的列表,请参阅受支持的节点类型。
您可以 pay-as-you-go 按需购买节点,您只需为使用节点付费。您也可以相当优惠的小时费率购买预留节点。如果使用率高,则购买预留节点可节省资金。假设您的集群几乎始终在使用中,并且您有时会添加节点来满足使用峰值的需求。在这种情况下,您可以购买大量预留节点以在大多数情况下运行。然后,您可以根据偶尔需要添加节点的时间购买 pay-as-you-go 节点。有关预留节点的更多信息,请参阅ElastiCache 预留节点。
有关节点的更多信息,请参阅管理节点。
ElastiCache 用于 Redis 碎片
Redis 分区(在 API 和 CLI 中称为节点组)是 1 到 6 个相关节点的分组。Redis(已禁用集群模式)集群始终至少有一个分片。
分片是一种数据库分区方法,它将大型数据库分成更小、更快、更易于管理的部分,称为数据分片。这可以通过将操作分配到多个单独的部分来提高数据库效率。使用分片可以带来许多好处,包括提高性能、可扩展性和成本效益。
Redis(已启用集群模式)集群最多可以拥有 500 个分区,并且跨分区对您的数据进行分区。如果 Redis 引擎版本为 5.0.6 或更高版本,可将每个集群的节点或分片限制提高到最大值 500。例如,您可以选择配置一个 500 节点的集群,范围介于 83 个分片(一个主分片和 5 个副本分片)和 500 个分片(一个主分片,无副本分片)之间。确保可提供足够的 IP 地址来满足增长需求。常见的陷阱包括子网组中的子网 CIDR 范围太小,或者子网被其他集群共享和大量使用。有关更多信息,请参阅 创建子网组。对于低于 5.0.6 的版本,每个集群的限制为 250。
若要请求提高限制,请参阅 Amazon Service Limits 并选择限制类型 Nodes per cluster per instance type(每个实例类型的每个集群的节点数)。
多节点分区通过指定一个读/写主节点和 1 到 5 个副本节点来实现复制。有关更多信息,请参阅 使用复制组时的高可用性。
有关分片的更多信息,请参阅使用分片。
ElastiCache 适用于 Redis 集群
Redis 集群 是一个或多个ElastiCache 用于 Redis 碎片的逻辑分组。数据在 Redis(启用集群模式)集群中的分区上进行分区。
许多 ElastiCache 操作都针对集群:
-
创建集群
-
修改集群
-
为集群拍摄快照(所有版本的 Redis)
-
删除集群
-
查看集群中的元素
-
在集群中添加和删除成本分配标签
有关更多详细信息,请参阅以下相关主题:
-
有关集群、节点和相关操作的信息。
-
Amazon 服务限制:Amazon ElastiCache
有关 ElastiCache 限制的信息,例如节点或集群的最大数量。要超出这些限制中的某些限制,您可以使用 Amazon ElastiCache 缓存节点申请表提出请求
。 -
有关增强集群和复制组的容错能力的信息。
典型集群配置
以下是典型的集群配置。
Redis 集群
Redis(已禁用集群模式)集群始终只包含一个分区(在 API 和 CLI 中,为一个节点组)。一个 Redis 分区包含 1 到 6 个节点。如果分区中有多个节点,则该分区支持复制。在这种情况下,一个节点是读/写主节点,其他为只读副本节点。
为了提高容错能力,我们建议在 Redis 集群中包含至少两个节点,并启用多可用区。有关更多信息,请参阅 缓解故障。
随着对 Redis(已禁用集群模式)集群的需求发生变化,您可以纵向扩展或缩减。为此,请将您的集群移到其他节点实例类型。如果应用程序是读取操作密集型,建议您添加只读副本 Redis(已禁用集群模式)集群。通过执行此操作,您可以将读取分布到更多数量的节点上。
您还可以使用数据分层功能。将访问频率更高的数据存储在内存中,而将访问频率较低的数据存储在磁盘上。使用数据分层的优点是可以减少内存需求。有关更多信息,请参阅 数据分层。
ElastiCache 支持动态将 Redis(已禁用集群模式)集群的节点类型更改为更大的节点类型。有关纵向扩展或缩减的信息,请参阅扩展单节点 Redis(已禁用集群模式)集群或扩展具有副本节点的 Redis(已禁用集群模式)集群。
ElastiCache 用于 Redis 复制
通过在一个分区(在 API 和 CLI 中,称为节点组)中对 2 到 6 个节点进行分组来实现复制。在这些节点中,有一个是读取/写入主节点。所有其他节点均为只读副本节点。
每个副本节点保留一个主节点中的数据的副本。复制节点使用异步复制机制来与主节点保持同步。应用程序可从集群中的任何节点进行读取,但只能对主节点进行写入。只读副本通过跨多个终端节点分布读取来增强可扩展性。只读副本还通过维护数据的多个副本来增强容错能力。在多个可用区内定位只读副本可进一步增强容错能力。有关容错能力的更多信息,请参阅缓解故障。
Redis(已禁用集群模式)集群支持一个分区(在 API 和 CLI 中,被称为节点组)。
从 API 和 CLI 的视角来看,复制使用了不同的术语来维护与之前版本的兼容性,但结果是相同的。下表显示了用于实现复制的 API 和 CLI 术语。
比较复制:Redis(已禁用集群模式)和 Redis(已启用集群模式)
下表所示为 Redis(已禁用集群模式)与 Redis(已启用集群模式)复制组的功能对比。
Redis(已禁用集群模式) | Redis(已启用集群模式) | |
---|---|---|
分区(节点组) | 1 | 1-500 |
每个分片的副本数 (节点组) | 0-5 | 0-5 |
数据分区 | 不支持 | 支持 |
添加/删除副本 | 支持 | 支持 |
添加/删除组节点 | 不支持 | 支持 |
支持扩展 | 支持 | 支持 |
支持引擎升级 | 支持 | 支持 |
将副本提升为主副本 | 支持 | 自动 |
多可用区 | 可选 | 必需 |
备份/还原 | 支持 | 支持 |
备注: | ||
如果任何主副本没有副本,则在主副本失败时,您将失去该主副本的所有数据。 | ||
您可以使用备份和还原功能来迁移到 Redis(已启用集群模式)。 | ||
您可以使用备份和恢复功能来调整您的 Redis(已启用集群模式)集群的大小。 |
所有分区(在 API 和 CLI 中称为节点组)和节点必须位于同一 Amazon 区域内。但是,您可以 Amazon 在该区域内的多个可用区中配置单个节点。
只读副本可防止潜在的数据丢失,因为数据是在两个或多个节点(主节点和一个或多个只读副本)上复制的。为获得更高可靠性和更快地恢复,建议您在不同可用区内创建一个或多个只读副本。
您还可以利用全局数据存储。通过使用适用于 Redis 的全球数据存储功能,您可以跨 Amazon 区域进行完全托管、快速、可靠和安全的复制。使用此功能,您可以为 Redis 创建跨区域只读副本集群,以实现跨区域的低延迟读取和灾难恢复。 ElastiCache Amazon 有关更多信息,请参阅使用全球数据存储跨 Amazon 区域复制。
复制:限制和局限
节点类型 T1 不支持多可用区。
Amazon 区域和可用区
ElastiCache Amazon 在全球多个 Amazon 地区均有销售。因此,您可以在满足业务需求的位置启动 ElastiCache集群。例如,您可以在离客户最近的 Amazon 地区或满足某些法律要求的地区开店。
默认情况下, Amazon 软件开发工具包 Amazon CLI、 ElastiCache API 和 ElastiCache 控制台引用美国西部(俄勒冈)区域。随着新 Amazon 区域的可用性 ElastiCache 扩展,这些 Amazon 区域的新终端节点也可用。您可以在 HTTP 请求、 Amazon 软件开发工具包和 ElastiCache 控制台中使用它们。 Amazon CLI
每个 Amazon 区域都设计为与其他 Amazon 区域完全隔离。每个区域内有多个可用区。在不同的可用区内启动节点,可以实现可能的最大容错。有关 Amazon 区域和可用区的更多信息,请参阅选择区域和可用区。在下图中,您可以看到 Amazon 区域和可用区如何运作的高级视图。
![图片: Amazon 区域和可用区](images/ElastiCache-RegionsAndAZs.png)
有关支持的 Amazon 区域 ElastiCache 及其终端节点的信息,请参阅支持的区域和端点。
ElastiCache 适用于 Redis 端点
终端节点是您的应用程序用于连接到 ElastiCache 节点或集群的唯一地址。
Redis(已禁用集群模式)的单节点端点
单节点 Redis 集群的终端节点用于连接到用于读取和写入的集群。
Redis(已禁用集群模式)的多节点端点
多节点 Redis(已禁用集群模式)集群包含两种类型的端点。主终端节点始终连接到集群中的主节点,即使主角色中的特定节点发生更改也是如此。使用主终端节点执行对集群的所有写入操作。
使用读取器端点 将在所有只读副本之间均匀地分配指向端点的传入连接。使用单独的节点端点 进行读取操作(在 API/CLI 中,它们被称作读取端点)。
Redis(已启用集群模式)端点
Redis(已启用集群模式)集群有一个单配置端点。通过连接到配置端点,您的应用程序可以查找集群中每个分片的主端点和读取端点。
有关更多信息,请参阅 查找连接端点。
ElastiCache 参数组
缓存参数组是为受支持的引擎软件管理运行时设置的简单方法。参数用于控制内存使用率、移出策略、项目大小等。 ElastiCache 参数组是可以应用于集群的引擎特定参数的命名集合。通过这样做,您可以确保该集群中的所有节点都以完全相同的方式进行配置。
有关受支持的参数、其默认值以及其中可以修改的参数的列表,请参阅 DescribeEngineDefaultParameters(CLI:describe-engine-default-parameters)。
有关 ElastiCache 参数组的更多详细信息,请参阅使用参数组配置引擎参数。
ElastiCache 为了 Redis 安全
为了增强安全性, ElastiCache 对于 Redis 节点,仅允许在您允许的 Amazon EC2 实例上运行的应用程序进行访问。您可以使用安全组控制可访问集群的 Amazon EC2 实例。
默认情况下,所有新 ElastiCache 的 Redis 集群都是在亚马逊虚拟私有云(亚马逊 VPC)环境中启动的。可以使用子网组授予从在特定子网上运行的 Amazon EC2 实例进行集群访问的权限。
除了限制节点访问外,for Redis 还支持 TLS 和 ElastiCache 对运行 for Redis 指定版本的 ElastiCache 节点进行就地加密。有关更多信息,请参阅下列内容:
ElastiCache 子网组
子网组是您可为在 Amazon VPC 环境中运行的集群指定的子网(通常为私有子网)集合。
如果您在 Amazon VPC 中创建集群,则必须指定缓存子网组。ElastiCache 使用该缓存子网组选择子网和该子网内的 IP 地址以与您的缓存节点相关联。
有关 Amazon VPC 环境中缓存子网组使用情况的更多信息,请参阅以下内容:
ElastiCache 用于 Redis 备份
备份是 Redis 集群的 point-in-time 副本。备份可用于还原现有集群或为新集群做种。备份包含集群中的所有数据和某些元数据。
根据您集群上运行的 Redis 版本,备份过程需要不同的预留内存量才能成功。有关更多信息,请参阅下列内容:
ElastiCache 事件
当缓存集群上发生重要事件时, ElastiCache 会向特定的 Amazon SNS 主题发送通知。这些事件可能包括诸如添加节点失败、添加节点成功、修改安全组等内容。通过监控关键事件,您可以了解集群的当前状态,并且在许多情况下,您都可用采取相应的纠正措施。
有关 ElastiCache 事件的更多信息,请参阅Amazon SNS 监控 ElastiCache 事件。