用于 Redis 的 Amazon ElastiCache
ElastiCache for Redis 用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

升级引擎版本

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

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

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

重要

  • 您可以升级到较新的引擎版本,但不能降级到较早的引擎版本。要使用较早的引擎版本,必须删除现有的集群,并使用较早的引擎版本重新创建。

  • 虽然引擎版本管理功能旨在让您能够尽可能多地控制执行修补的方式,但在数据库软件存在关键安全漏洞的偶然情况下,ElastiCache 保留代您修补数据库实例的权利。

  • ElastiCache for Redis 不支持在 Redis (已禁用集群模式)和 Redis (已启用集群模式)之间切换。

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

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

    从 Redis (已禁用集群模式)升级到 Redis (已启用集群模式)引擎版本

    1. 为 Redis (已禁用集群模式)集群或复制组创建备份。有关更多信息,请参阅进行手动备份

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

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

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

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

  • 对于启用了多可用区的 Redis 集群,还建议在传入的写流量较低期间安排引擎升级。主项在升级过程中仍然可用于处理服务请求,启动故障转移的几分钟内除外。

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

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

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

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

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

如何升级引擎版本

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

解决阻止的 Redis 引擎升级

如下表所示,如果您有待处理的纵向扩展操作,则会阻止 Redis 引擎升级操作。

待处理的操作 阻止的操作
纵向扩展 立即引擎升级
引擎升级 立即纵向扩展
纵向扩展和引擎升级 立即纵向扩展
立即引擎升级

要解决阻止的 Redis 引擎升级,请执行以下操作之一

  • 通过清除 Apply immediately 复选框(CLI 使用:--no-apply-immediately,API 使用:ApplyImmediately=false),将 Redis 引擎升级操作安排在下一维护时段内。

     

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

     

  • 将 Redis 纵向扩展操作添加到此选中了 Apply Immediately 复选框 (CLI 使用:--apply-immediately,API 使用:ApplyImmediately=true) 的集群修改中。(这将立即执行引擎升级,从而有效地在下一维护时段内取消该操作。)