本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工作方式
在这里,您可以找到 ElastiCache (Redis OSS)部署的主要组件的概述。
缓存和缓存引擎
缓存是一种内存中的数据存储,可用于存储缓存的数据。通常,您的应用程序会将经常访问的数据缓存在缓存中,以优化响应时间。 ElastiCache (Redis OSS) 提供两种部署选项:无服务器集群和自行设计的集群。请参阅 选择部署选项。
注意
亚马逊同时 ElastiCache 使用 Redis OSS 和 Memcached 引擎。使用您感兴趣的引擎的指南。如果您不确定要使用哪个引擎,请参阅本指南中的比较 Memcached 和 Redis OSS 自行设计的缓存。
ElastiCache (Redis OSS)的工作原理
ElastiCache (Redis OSS) 无服务器
ElastiCache (Redis OSS) Serverless 使您能够创建缓存,而不必担心容量规划、硬件管理或集群设计。您只需为缓存提供一个名称,即可收到一个终端节点,您可以在 Redis OSS 客户端中配置该终端节点以开始访问缓存。
注意
ElastiCache (Redis OSS) Serverless 在集群模式下运行 Redis OSS,并且仅与同时支持 TLS 和 Redis OSS 集群协议的 Redis OSS 客户端兼容。
主要优势
无需进行容量规划:ElastiCache 无服务器让您无需规划容量。 ElastiCache Serverless 持续监控缓存的内存、计算和网络带宽利用率,并可纵向和横向扩展。它可以增大缓存节点,同时并行启动横向扩展操作,以确保缓存能够扩展以始终满足您的应用程序需求。
Pay-per-use:使用 ElastiCache Serverless,您需要为缓存中的工作负载所存储的数据和使用的计算付费。请参阅 定价维度。
高可用性:ElastiCache Serverless 会自动跨多个可用区 (AZ) 复制您的数据,以实现高可用性。它会自动监控底层缓存节点,并在出现故障时将其替换。它为每个缓存提供 99.99% 可用性 SLA。
自动软件升级:ElastiCache Serverless会自动将您的缓存升级到最新的次要版本和补丁软件版本,而不会对您的应用程序的可用性产生任何影响。当有新的 Redis OSS 主版本可用时, ElastiCache 将向您发送通知。
安全性:无服务器始终对传输中数据和静态数据进行加密。您可以使用服务托管密钥或您自己的客户自主管理型密钥,对静态数据进行加密。
下图说明了 ElastiCache 无服务器的工作原理。
创建新的无服务器缓存时, ElastiCache 将在您的 VPC 中您选择的子网中创建一个虚拟私有云 (VPC) 终端节点。您的应用程序可以通过这些 VPC 端点连接到缓存。
使用 ElastiCache Serverless,您可以收到应用程序连接到的单个 DNS 端点。当您请求与端点建立新连接时, ElastiCache Serverless 会通过代理层处理所有缓存连接。代理层有助于减少复杂的客户端配置,因为在底层集群发生变化时,客户端无需重新发现集群拓扑。代理层是一组使用网络负载均衡器处理连接的代理节点。当应用程序创建新的缓存连接时,网络负载均衡器会将请求发送到代理节点。当应用程序执行缓存命令时,连接到应用程序的代理节点会在缓存中的缓存节点上执行请求。代理层从客户端提取缓存群集拓扑和节点。这使您 ElastiCache 能够智能地进行负载平衡、横向扩展和添加新的缓存节点、在缓存节点出现故障时更换缓存节点以及更新缓存节点上的软件,所有这些都不会影响应用程序的可用性,也不必重置连接。
自行设计 ElastiCache 的集群
您可以通过为 ElastiCache 集群选择缓存节点系列、大小和节点数量来选择设计自己的集群。设计自己的集群可让您实施更精细的控制,并让您选择缓存中的分片数和每个分片中的节点(主节点和副本)数。您可以选择在集群模式下运行 Redis OSS,方法是创建包含多个分片的集群,也可以选择在非集群模式下使用单个分片来运行 Redis OSS。
主要优势
设计自己的集群:使用 ElastiCache,您可以设计自己的集群并选择要放置缓存节点的位置。例如,如果您的应用程序需要放弃高可用性来换取低延迟,则可以选择在单个可用区中部署缓存节点。或者,在设计集群时,您可以使用跨多个可用区的节点,从而实现高可用性。
精细控制:在设计自己的集群时,您可以通过微调缓存上的设置来实现更多控制。例如,您可以使用 Redis OSS 特有的参数 配置缓存引擎。
垂直和水平扩展:在需要时,您可以选择增大或减小缓存节点大小来手动扩缩集群。您也可以通过添加新分片或向分片添加更多副本来水平扩展。您还可以使用 Auto-Scaling 功能根据计划配置扩展,或者根据缓存上的 CPU 和内存使用率等指标进行扩展。
下图说明了 ElastiCache 自行设计的集群的工作原理。
定价维度
您可以通过两个部署 ElastiCache 选项进行部署。在部署 ElastiCache Serverless 时,您需要为以 GB 小时存储的数据和按 ElastiCache 处理单元 (ECPU) 计算的数据的使用量付费。选择设计自己的 ElastiCache (Redis OSS) 集群时,您需要按每小时的缓存节点使用量付费。请参阅此处
数据存储
您需要为存储在 ElastiCache 无服务器中的数据付费,按千兆字节小时 (GB-Hr) 计费。 ElastiCache Serverless 持续监控存储在缓存中的数据,每分钟采样多次,并计算每小时平均值以确定缓存的数据存储使用量(以 GB-Hr 为单位)。每个 ElastiCache 无服务器缓存按流量计量存储至少 1 GB 的数据。
ElastiCache 处理单元 (ECPU)
您需要为应用程序在 ElastiCache 无服务器 ElastiCache 处理单元 (ecPU) 上执行的 Redis OSS 请求付费,该单位包括 vCPU 时间和传输的数据。
对于传输的每 KB 数据,简单读取和写入需要 1 个 ECPU。例如,传输最多 1 KB 数据的 GET 命令将使用 1 个 ECPU。传输 3.2 KB 数据的 SET 请求将使用 3.2 个 ECPU。
需要额外的 vCPU 时间的命令将按比例消耗更多 ECPU。例如,如果您的应用程序使用 Redis OSS HMGET 命令,并且使用简单 SET/GET 命令
消耗的 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。
节点小时数
您可以选择自己的 Redis OSS 缓存集群,方法是选择 EC2 节点系列、大小、节点数量和跨可用区域的位置。在自行设计集群时,您需要按小时为每个缓存节点付费。
ElastiCache (Redis OSS) 备份
备份是 Redis OSS 缓存的 point-in-time 副本。 ElastiCache 使您可以随时备份数据或设置自动备份。备份可用于还原现有缓存或为新集群制作种子。备份包含缓存中的所有数据和某些元数据。有关更多信息,请参阅 快照和还原。