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

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

的版本管理 ElastiCache

管理您希望如何更新 ElastiCache 缓存和为 Valkey、Memcached 和 Redis OSS 引擎更新的自行设计的集群。

ElastiCache 无服务器缓存的版本管理

管理是否以及何时升级 ElastiCache 无服务器缓存,并根据自己的条件和时间表执行版本升级。

ElastiCache Serverless 会自动将最新的次要版本和补丁软件版本应用到您的缓存,而不会对您的应用程序造成任何影响或停机。在您的末端不需要执行任何操作。

当有新的主要版本可用时, ElastiCache Serverless 将在控制台中向您发送通知,并在中 EventBridge向您发送事件。您可以选择使用控制台、CLI 或 API 修改缓存并选择最新的引擎版本,将缓存升级到最新的主要版本。与次要升级和补丁升级类似,主要版本升级无需应用程序停机即可执行。

为自己设计 ElastiCache 的集群提供版本管理

使用自行设计的 ElastiCache 集群时,您可以控制为缓存集群提供支持的 ElastiCache软件何时升级到支持的新版本。您可以控制何时将缓存升级到最新的可用主版本、次要版本和补丁版本。可以通过修改集群或复制组并指定新的引擎版本,对您的集群或复制组启动引擎版本升级。

您可以控制为缓存集群提供支持的符合协议的软件是否以及何时升级到支持的新版本。 ElastiCache此级别的控制使您能够与特定版本保持兼容、在生产中部署进行之前使用应用程序测试新版本以及根据自己的条件和时间表执行版本升级。

因为版本升级可能会涉及到某些兼容性风险,因此版本升级不会自动发生。您必须启动它们。

Valkey 和 Redis OSS 集群

注意
  • 如果跨一个或多个区域复制 Valkey 或 Redis OSS 集群,则会先升级辅助区域的引擎版本,然后再升级主区域的引擎版本。

  • ElastiCache 对于 Redis,OSS 版本以语义版本标识,语义版本包括主要和次要组件。例如,在 Redis OSS 6.2 中,主要版本为 6,次要版本为 2。在操作自己设计的集群时, ElastiCache 适用于 Redis 的 OSS 还会公开补丁组件,例如 Redis OSS 6.2.1,补丁版本为 1。

    主要版本用于 API 不兼容的更改,次要版本用于以向后兼容的方式添加的新功能。补丁版本用于向后兼容的错误修复和不起作用的更改。

对于 Valkey 和 Redis OSS,您可以通过修改集群或复制组并指定新的引擎版本来对启动集群或复制组的版本升级。有关更多信息,请参阅 修改复制组

Memcached

对于 Memcached,要升级到更新的版本,您必须修改缓存集群,并指定要使用的新引擎版本。升级到更新的 Memcached 版本是一个破坏性过程 – 您会丢失数据并以冷缓存开始。有关更多信息,请参阅 修改集 ElastiCache 群

从旧版本的 Memcached 升级到 1.4.33 版本或更新版本的 Memcached 时,您应注意以下要求。CreateCacheClusterModifyCacheCluster 在下列情况下将失败:

  • 如果 slab_chunk_max > max_item_size

  • 如果 max_item_size modulo slab_chunk_max != 0

  • 如果 max_item_size > ((max_cache_memory - memcached_connections_overhead) / 4)

    (max_cache_memory - memcached_connections_overhead) 值是可用于数据的节点内存。有关更多信息,请参阅 Memcached 连接开销

支持的引擎和版本

ElastiCache Valkey 及更高 ElastiCache 版本的无服务器缓存支持 7.2 版,Memcached 及更高 ElastiCache 版本支持 1.6 版,Redis OSS 及更高版本支持 ElastiCache 7.0 版。

ElastiCache 自行设计的缓存支持 Valkey 及更高 ElastiCache 版本的 7.2 版,Memcached 及更高 ElastiCache 版本支持 1.4.5 版,Redis OSS 及更高版本支持 ElastiCache 4.0.10。

自行设计的 ElastiCache 集群支持以下 Valkey 版本:

支持的 Valkey 版本

支持的 Valkey 版本如下。请注意,默认情况下,Valkey 支持 Redis OSS 7.2 ElastiCache 版本中提供的大多数功能。

  • 您也可以使用低于 5.0.6 的版本升级 ElastiCache 集群。所涉及的过程相同,但在 DNS 传播期间可能会导致更长的故障转移时间(30 秒 - 1 分钟)。

  • 从 Redis OSS 7 开始, ElastiCache 支持在 Valkey 或 Redis OSS(已禁用集群模式)和 Valkey 或 Redis OSS(启用集群模式)之间切换。

  • Amazon ElastiCache for Redis OSS 引擎升级过程旨在尽最大努力保留您的现有数据,并且需要成功复制 Redis OSS。

  • 升级引擎时, ElastiCache 将终止现有的客户端连接。为了最大限度地减少引擎升级期间的停机时间,我们建议您实施关于 Redis OSS 客户端的最佳实践,包括错误重试和指数回退,以及关于维护期间最大限度减少停机时间的最佳实践。

  • 升级引擎时,您无法从 Valkey 或 Redis OSS(已禁用集群模式)直接升级到 Valkey 或 Redis OSS(已启用集群模式)。以下过程演示了如何从 Valkey 或 Redis OSS(已禁用集群模式)升级到 Valkey 或 Redis OSS(已启用集群模式)。

    从 Valkey 或 Redis OSS(已禁用集群模式)升级到 Valkey 或 Redis OSS(已启用集群模式)引擎版本
    1. 备份 Valkey 或 Redis OSS(已禁用集群模式)集群或复制组。有关更多信息,请参阅 进行手动备份

    2. 使用备份创建具有一个分片(节点组)的 Valkey 或 Redis OSS(已启用集群模式)集群并为其制作种子。在创建集群或复制组时,指定新的引擎版本并启用集群模式。有关更多信息,请参阅 教程:使用外部创建的备份为新的自行设计的集群制作种子

    3. 删除旧 Valkey 或 Redis OSS(已禁用集群模式)集群或复制组。有关更多信息,请参阅 删除中的集群 ElastiCache删除复制组

    4. 将新的 Valkey 或 Redis OSS(已启用集群模式)集群或复制组扩展到所需的分片(节点组)数。有关更多信息,请参阅 扩缩 Valkey 或 Redis OSS 中的集群(已启用集群模式)

  • 升级主要引擎版本(例如从 5.0.6 升级到 6.0)时,还需要选择一个与新引擎版本兼容的新参数组。

  • 对于单个 Redis OSS 集群以及禁用了多可用区的集群,建议有足够的内存可供 Redis OSS 使用,如确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存中所述。在这些情况下,主项在升级过程中不可用于处理服务请求。

  • 对于启用了多可用区的 Redis OSS 集群,我们还建议您在传入的写流量较低期间安排引擎升级。升级到 Redis OSS 5.0.6 或更高版本时,主集群在升级过程中仍可用于服务请求。

    将处理和修补带多个分片的集群和复制组,如下所示:

    • 将并行处理所有分片。在任何时候,仅在分片上执行一次升级操作。

    • 在每个分片中,在处理主副本之前,会先处理所有其他副本。如果一个分片中的副本较少,则可能会在处理完其他分片中的副本之前处理该分片中的主副本。

    • 在所有分片中,主节点都是按顺序处理的。一次只升级一个主节点。

  • 如果已对当前集群或复制组启用了加密,则无法升级到不支持加密的引擎版本,例如,从 3.2.6 升级到 3.2.10。

Memcached 注意事项

在升级自行设计的 Memcached 集群时,请注意以下事项。

  • 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是,如果系统或缓存软件中出现严重安全漏洞,则 ElastiCache 保留代表您修补集群的权利。

  • 由于 Memcached 引擎不支持持久化,因此 Memcached 引擎版本升级始终是一个中断性过程,将清除集群中的所有缓存数据。

ElastiCache (Valkey) 版本 8.0

以下是 Valkey 8.0 中引入的一些新功能(与 Valkey 7.2.6 相比): ElastiCache

  • 内存效率提高,允许用户在不更改任何应用程序的情况下在每个节点上存储多达 20% 的数据。

  • 新推出的每插槽指标基础架构,用于自行设计的缓存,可详细了解各个插槽的性能和资源使用情况。

  • ElastiCache 适用于 Valkey 8.0 的无服务器可以每 2-3 分钟将支持的每秒请求数 (RPS) 翻一番,在不到 13 分钟的时间内从零达到每个缓存 500 万 RPS,读取延迟始终保持亚毫秒 p50。

有关 Valkey 的更多信息,请参阅 Valkey

有关 Valkey 8 版本的更多信息,请参阅 Valkey 8 发行说明

ElastiCache 适用于 Valkey 的 7.2.6 版

2024 年 10 月 10 日,Valkey ElastiCache 的 7.2.6 版本发布。以下是 7.2 中引入的一些新功能(与 Redis OSS 的 7.1 ElastiCache 版本相比):

  • 各种数据类型的性能和内存优化:列表和集合类型键的内存优化、排序集命令的速度优化、集群模式下具有多个键的命令的性能优化、发布/订阅性能改进、SCAN、HSCAN、HSCAN、ZSCAN 命令的性能优化以及许多其他较小的优化。

  • ZRANK 和 ZREVRANK 命令有新的 WITHSCORE 选项

  • CLIENT NO-TOUCH 让客户端可以在不影响键的 LRU/LFU 的情况下运行命令。

  • 新命令 CLUSTER MYSHARDID 返回节点的分片 ID,以便根据复制在集群模式下对节点进行逻辑分组。

有关 Valkey 的更多信息,请参阅 Valkey

有关 Valkey ElastiCache 版本 7.2 的更多信息,请参阅 Redis OSS 7.2.4 发行说明(Valkey 的 7.2 ElastiCache 版包括从 Redis OSS 的 7.1 ElastiCache 版到 Redis OSS 的 7.2.4 ElastiCache 版的所有更改)。Valkey 上的 Valkey 7.2 发行说明。 GitHub