引擎版本和升级 - 亚马逊 ElastiCache (Redis OSS)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

引擎版本和升级

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

MAJOR 主要版本针对 API 不兼容的更改,而 MINOR 版本针对以向后兼容的方式添加的新功能。PATCH 版本针对向后兼容的错误修复和非功能性更改。

ElastiCache 无服务器版本管理

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

当新的主要版本可用时, ElastiCache Serverless 将在控制台中向您发送通知,并在中 EventBridge向您发送事件。您可以选择使用控制台、CLI 或 API 修改缓存并选择最新的引擎版本,将缓存升级到最新的主要版本。

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

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

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

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

可以通过修改集群或复制组并指定新的引擎版本,对您的集群或复制组启动引擎版本升级。有关更多信息,请参阅下列内容:

使用自行设计集群时的升级注意事项

注意

以下注意事项仅在升级自行设计集群时适用。它们不适用于 ElastiCache 无服务器。

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

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

  • 从 Redis OSS 6.0 开始, ElastiCache (Redis OSS)将为每个 Redis OSS 次要版本提供一个版本,而不是提供多个补丁版本。

  • 从 Redis OSS 引擎版本 5.0.6 开始,您可以在最短的停机时间内升级集群版本。集群在整个升级过程中可供读取,并在大部分升级持续时间内可供写入,但在只持续几秒钟的故障转移操作期间则例外。

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

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

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

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

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

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

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

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

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

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

  • 对于单个 Redis OSS 集群和已禁用多可用区的集群,我们建议按中所述为 Redis OSS 提供足够的内存。确保您有足够的内存来创建 Redis OSS 快照在这些情况下,主项在升级过程中不可用于处理服务请求。

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

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

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

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

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

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

如何升级引擎版本

您可以使用 ElastiCache 控制台、或 ElastiCache API 修改集群或复制组并指定更新的引擎版本,从而启动对集群或复制组的版本升级。 Amazon CLI有关更多信息,请参阅以下主题。

解决阻塞的 Redis OSS 引擎升级问题

如下表所示,如果您有待执行的扩展操作,则会阻止您的 Redis OSS 引擎升级操作。

待处理的操作 阻止的操作
纵向扩展 立即引擎升级
引擎升级 立即纵向扩展
纵向扩展和引擎升级 立即纵向扩展
立即引擎升级
要解决阻塞的 Redis OSS 引擎升级问题
  • 请执行以下操作之一:

    • 清除 “立即应用” 复选框,将您的 Redis OSS 引擎升级操作安排到下一个维护时段。

      对于 CLI,请使用 --no-apply-immediately。对于 API,请使用 ApplyImmediately=false

    • 等到下一个维护时段(或之后)才执行 Redis OSS 引擎升级操作。

    • 选中 “立即应用” 复选框,将 Redis OSS 向上扩展操作添加到此集群修改中。

      对于 CLI,请使用 --apply-immediately。对于 API,请使用 ApplyImmediately=true

      此方法将立即执行引擎升级,从而有效地在下一维护时段内取消该操作。