工作方式 - ElastiCache 适用于 Redis 的 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

工作方式

在这里,您可以找到 for Redis 部署的主要组件 ElastiCache 的概述。

缓存和缓存引擎

缓存是一种内存中的数据存储,可用于存储缓存的数据。通常,您的应用程序会将经常访问的数据缓存在缓存中,以优化响应时间。 ElastiCache for Redis 提供两种部署选项:无服务器集群和自行设计的集群。请参阅 选择部署选项

注意

亚马逊同时 ElastiCache 使用 Redis 和 Memcached 引擎。使用您感兴趣的引擎的指南。如果您不确定要使用哪个引擎,请参阅本指南中的比较 Memcached 和 Redis 自行设计缓存

ElastiCache 对于 Redis 来说是如何工作的

ElastiCache 适用于 Redis 无服务器

ElastiCache for Redis Serverless 使您能够创建缓存,而不必担心容量规划、硬件管理或集群设计。您只需为缓存提供一个名称,即可收到一个端点,可以在 Redis 客户端中配置此端点以开始访问缓存。

注意

ElastiCache for Redis Serverless 在集群模式下运行 Redis,并且仅与同时支持 TLS 和 Redis 集群协议的 Redis 客户端兼容。

主要优势

  • 无需进行容量规划:ElastiCache 无服务器让您无需规划容量。 ElastiCache Serverless 持续监控缓存的内存、计算和网络带宽利用率,并可纵向和横向扩展。它可以增大缓存节点,同时并行启动横向扩展操作,以确保缓存能够扩展以始终满足您的应用程序需求。

  • Pay-per-use:使用 ElastiCache Serverless,您需要为缓存中的工作负载所存储的数据和使用的计算付费。请参阅 定价维度

  • 高可用性:ElastiCache Serverless 会自动跨多个可用区 (AZ) 复制您的数据,以实现高可用性。它会自动监控底层缓存节点,并在出现故障时将其替换。它为每个缓存提供 99.99% 可用性 SLA。

  • 自动软件升级:ElastiCache Serverless会自动将您的缓存升级到最新的次要版本和补丁软件版本,而不会对您的应用程序的可用性产生任何影响。当有新的 Redis 主版本可用时, ElastiCache 将向您发送通知。

  • 安全性:无服务器始终对传输中数据和静态数据进行加密。您可以使用服务托管密钥或您自己的客户自主管理型密钥,对静态数据进行加密。

下图说明了 ElastiCache 无服务器的工作原理。


							 ElastiCache 无服务器缓存操作示意图,从可用区到客户 VPC,再到服务 VPC。

创建新的无服务器缓存时, ElastiCache 将在您的 VPC 中您选择的子网中创建一个虚拟私有云 (VPC) 终端节点。您的应用程序可以通过这些 VPC 端点连接到缓存。

使用 ElastiCache Serverless,您可以收到应用程序连接到的单个 DNS 端点。当您请求与端点建立新连接时, ElastiCache Serverless 会通过代理层处理所有缓存连接。代理层有助于减少复杂的客户端配置,因为在底层集群发生变化时,客户端无需重新发现集群拓扑。代理层是一组使用网络负载均衡器处理连接的代理节点。当应用程序创建新的缓存连接时,网络负载均衡器会将请求发送到代理节点。当应用程序执行缓存命令时,连接到应用程序的代理节点会在缓存中的缓存节点上执行请求。代理层从客户端提取缓存群集拓扑和节点。这使您 ElastiCache 能够智能地进行负载平衡、横向扩展和添加新的缓存节点、在缓存节点出现故障时更换缓存节点以及更新缓存节点上的软件,所有这些都不会影响应用程序的可用性,也不必重置连接。

自行设计 ElastiCache 的集群

您可以通过为 ElastiCache 集群选择缓存节点系列、大小和节点数量来选择设计自己的集群。设计自己的集群可让您实施更精细的控制,并让您选择缓存中的分片数和每个分片中的节点(主节点和副本)数。您可以选择通过创建带多个分片的集群,以便在集群模式下操作 Redis,或者在非集群模式下使用单个分片来操作 Redis。

主要优势

  • 设计自己的集群:使用 ElastiCache,您可以设计自己的集群并选择要放置缓存节点的位置。例如,如果您的应用程序需要放弃高可用性来换取低延迟,则可以选择在单个可用区中部署缓存节点。或者,在设计集群时,您可以使用跨多个可用区的节点,从而实现高可用性。

  • 精细控制:在设计自己的集群时,您可以通过微调缓存上的设置来实现更多控制。例如,您可以使用 Redis 特定的参数 配置缓存引擎。

  • 垂直和水平扩展:在需要时,您可以选择增大或减小缓存节点大小来手动扩缩集群。您也可以通过添加新分片或向分片添加更多副本来水平扩展。您还可以使用 Auto-Scaling 功能根据计划配置扩展,或者根据缓存上的 CPU 和内存使用率等指标进行扩展。

下图说明了 ElastiCache 自行设计的集群的工作原理。


							 ElastiCache 自行设计的集群操作示意图,从可用区到客户 VPC,再到 ElastiCache 托管缓存节点。

定价维度

您可以通过两个部署 ElastiCache 选项进行部署。在部署 ElastiCache Serverless 时,您需要为以 GB 小时存储的数据和按 ElastiCache 处理单元 (ECPU) 计算的数据的使用量付费。选择为 Redis 集群设计自己的 ElastiCache 集群时,您需要按每小时的缓存节点使用量付费。请参阅此处的定价详细信息。

数据存储

您需要为存储在 ElastiCache 无服务器中的数据付费,按千兆字节小时 (GB-Hr) 计费。 ElastiCache Serverless 持续监控存储在缓存中的数据,每分钟采样多次,并计算每小时平均值以确定缓存的数据存储使用量(以 GB-Hr 为单位)。每个 ElastiCache 无服务器缓存按流量计量存储至少 1 GB 的数据。

ElastiCache 处理单元 (ECPU)

您需要为应用程序在 ElastiCache 无服务器 ElastiCache 处理单元 (ecPU) 上执行的 Redis 请求付费,该单位包括 vCPU 时间和传输的数据。

  • 对于传输的每 KB 数据,简单读取和写入需要 1 个 ECPU。例如,传输最多 1 KB 数据的 GET 命令将使用 1 个 ECPU。传输 3.2 KB 数据的 SET 请求将使用 3.2 个 ECPU。

  • 需要额外的 vCPU 时间的命令将按比例消耗更多 ECPU。例如,如果您的应用程序使用 Redis HMGET 命令,并且使用的 vCPU 时间是简单 SET/GET 命令的 3 倍,那么它将使用 3 个 ECPU。

  • 使用更多 vCPU 时间和传输更多数据的命令会根据两个维度中的较高者使用 ECPU。例如,如果您的应用程序使用 HMGET 命令,并且使用的 vCPU 时间是简单 SET/GET 命令的 3 倍,并传输 3.2 KB 数据,那么它将使用 3.2 个 ECPU。或者,如果它仅传输 2 KB 数据,则将使用 3 个 ECPU。

ElastiCache Serverless 会发出一个名为的新指标ElastiCacheProcessingUnits,该指标可帮助您了解工作负载消耗的 ECPU。

节点小时数

您可以通过选择 EC2 节点系列、大小、节点数和跨可用区放置,来设计自己的 Redis 缓存群集。在自行设计集群时,您需要按小时为每个缓存节点付费。

ElastiCache 用于 Redis 备份

备份是 Redis 缓存的 point-in-time 副本。 ElastiCache 使您可以随时备份数据或设置自动备份。备份可用于还原现有缓存或为新集群制作种子。备份包含缓存中的所有数据和某些元数据。有关更多信息,请参阅 快照和还原