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

扩展 ElastiCache for Redis

扩展 ElastiCache 无服务器

ElastiCache 无服务器可自动适应您的工作负载流量的上升或下降。对于每个 ElastiCache 无服务器缓存,ElastiCache 会持续跟踪 CPU、内存和网络等资源的利用率。当这些资源中的任何一个出现瓶颈时,ElastiCache 无服务器会通过添加新分片来横向扩展,并将数据重新分配到新的分片,避免您的应用程序出现停机。您可以在 CloudWatch 中监控缓存数据存储的 BytesUsedForCache 指标和计算使用情况的 ElastiCacheProcessingUnits(ECPU)指标,以此来监控缓存所消耗的资源。

设置扩展限制以管理成本

您可以选择为缓存数据存储和缓存的每秒 ECPU 数配置最大使用量,以控制缓存成本。这样做可以确保缓存使用量永远不会超过配置的最大值。

如果您设置了扩展最大值,则当缓存达到最大值时,应用程序的缓存性能可能会降低。当您设置了缓存数据存储最大值且缓存数据存储达到最大值时,ElastiCache 将使用 LRU 逻辑,开始驱逐缓存中设置了生存时间(TTL)的数据。如果没有可以驱逐的数据,则写入更多数据的请求将收到内存不足(OOM)错误消息。当您设置了每秒 ECPU 数最大值并且工作负载的计算使用量超过该值时,ElastiCache 将开始对 Redis 请求进行节流。

如果您对 BytesUsedForCacheElastiCacheProcessingUnits 设置了最大值限制,我们强烈建议您设置低于最大值限制的 CloudWatch 警报,以便在缓存运行接近这些限制时收到通知。我们建议将警报设置为所设最大值限制的 75%。查看有关如何设置 CloudWatch 警报的文档。

使用控制台设置扩展限制

  1. 登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台(https://console.aws.amazon.com/elasticache/)。

  2. 在导航窗格中,选择在要修改的缓存上运行的引擎。

  3. 此时会显示运行所选引擎的缓存的列表。

  4. 选择缓存名称左侧的单选按钮来选择要修改的缓存。

  5. 选择 Actions(操作),然后选择 Modify(修改)。

  6. 最大用量限制下,设置相应的内存计算限制。

  7. 单击预览更改,然后保存更改。

使用 Amazon CLI 设置扩展限制

要使用 CLI 更改扩展限制,请使用 modify-serverless-cache API。

Linux:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Maximum=100,Unit=GB}, ECPUPerSecond={Maximum=100000}'

Windows:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Maximum=100,Unit=GB}, ECPUPerSecond={Maximum=100000}'

使用 CLI 取消扩展限制

要使用 CLI 取消扩展限制,请将最大值限制参数设置为 0。

Linux:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Maximum=0,Unit=GB}, ECPUPerSecond={Maximum=0}'

Windows:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Maximum=0,Unit=GB}, ECPUPerSecond={Maximum=0}'