

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

# 引擎版本和升级中 ElastiCache
<a name="engine-versions"></a>

本节介绍了受支持的 Valkey、Memcached 和 Redis OSS 引擎以及如何升级。请注意，Redis OSS 7.2 提供的所有功能在 Valkey 7.2 及更高版本中默认可用。你也可以从现有 ElastiCache 的 Redis OSS 引擎升级到 Valkey 引擎。

# 升级引擎版本，包括跨引擎升级
<a name="VersionManagement.HowTo"></a>

**Valkey 和 Redis OSS**

对于 Valkey 和 Redis OSS，您可以使用 ElastiCache 控制台、Amazon CLI 或 ElastiCache API 修改集群或复制组并指定较新的引擎版本，从而启动集群或复制组的版本升级。

您也可以从 Redis OSS 跨越升级到 Valkey。有关跨越升级的更多信息，请参阅[如何从 Redis OSS 升级到 Valkey](#VersionManagement.HowTo.cross-engine-upgrade)。

**Topics**
+ [

## 如何从 Redis OSS 升级到 Valkey
](#VersionManagement.HowTo.cross-engine-upgrade)
+ [

## 解决 Valkey 或 Redis OSS 引擎升级受阻问题
](#resolving-blocked-engine-upgrades)


****  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/VersionManagement.HowTo.html)

**Memcached**

对于 Memcached，要启动对集群的版本升级，请对其进行修改并指定较新的引擎版本。您可以使用 ElastiCache 控制台、Amazon CLI 或 ElastiCache API 执行此步骤：
+ 要使用 Amazon Web Services 管理控制台，请参阅 – [使用 ElastiCache Amazon Web Services 管理控制台](Clusters.Modify.md#Clusters.Modify.CON)。
+ 要使用 Amazon CLI，请参阅[使用 ElastiCache Amazon CLI](Clusters.Modify.md#Clusters.Modify.CLI)。
+ 要使用 ElastiCache API，请参阅 [使用 ElastiCache API](Clusters.Modify.md#Clusters.Modify.API)。

## 如何从 Redis OSS 升级到 Valkey
<a name="VersionManagement.HowTo.cross-engine-upgrade"></a>

Valkey 是 Redis OSS 7 的简易替代。您可以使用控制台、API 或 CLI 从 Redis OSS 升级到 Valkey，方法是指定新的引擎和主要引擎版本。升级不会更改端点 IP 地址和应用程序的所有其他方面。从 Redis OSS 5.0.6 及更高版本升级时，您不会遇到停机。

**注意**  
**从 Redis OSS 升级到 Valkey 的 Amazon CLI 版本要求：**  
对于 Amazon CLI v1：最低要求版本 1.35.2（当前版本：1.40.22）
对于 Amazon CLI v2：最低要求版本 2.18.2（当前版本：2.27.22）

**注意**  
从低于 5.0.6 的 Redis OSS 版本升级时，在 DNS 传播期间，您可能会经历 30 到 60 秒的失效转移。
要将现有的 Redis OSS（已禁用集群模式）单节点集群升级到 Valkey 引擎，请先按照以下步骤操作：[使用现有集群创建复制组](Replication.CreatingReplGroup.ExistingCluster.md)。将 Redis OSS（已禁用集群模式）单节点集群添加到复制组后，您就可以跨引擎升级到 Valkey。

### 将复制组从 Redis OSS 升级到 Valkey
<a name="cross-engine-upgrades.replication-group"></a>

如果您有一个使用默认缓存参数组的 Redis OSS 复制组，则可以通过 modify-replication-group API 指定新的引擎和引擎版本来升级到 Valkey。

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --engine valkey \
   --engine-version 8.0
```

对于 Windows：

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --engine valkey ^
   --engine-version 8.0
```

如果您对要升级的现有 Redis OSS 复制组应用了自定义缓存参数组，则还需要在请求中传递自定义 Valkey 缓存参数组。输入 Valkey 自定义参数组必须具有与现有 Redis OSS 自定义参数组相同的 Redis OSS 静态参数值。

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --engine valkey \
   --engine-version 8.0 \
   --cache-parameter-group-name myParamGroup
```

对于 Windows：

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --engine valkey ^
   --engine-version 8.0 ^
   --cache-parameter-group-name myParamGroup
```

### 使用 CLI 将 Redis OSS 无服务器缓存升级到 Valkey
<a name="cross-engine-upgrades.cli"></a>

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-serverless-cache \
   --serverless-cache-name myCluster \
   --engine valkey \
   --major-engine-version 8
```

对于 Windows：

```
aws elasticache modify-serverless-cache ^
   --serverless-cache-name myCluster ^
   --engine valkey ^
   --major-engine-version 8
```

### 使用控制台将 Redis OSS 升级到 Valkey
<a name="cross-engine-upgrades.console"></a>

**从 Redis OSS 5 升级到 Valkey**

1. 选择要升级的 Redis OSS 缓存。

1. 这时会出现**升级到 Valkey** 窗口。选择**升级到 Valkey** 按钮。

1. 转至**缓存设置**，然后选择**引擎版本**。建议使用最新版本的 Valkey。

1. 如果此缓存是无服务器的，则需要更新参数组。转至**缓存设置**的**参数组**区域，选择相应的参数组，例如 *default.valkey8*。

1. 选择**升级**。

该缓存现在将在控制台的 Valkey 区域中列出。

**注意**  
直接从 Redis OSS 4 或更低版本升级到 Valkey 可能会导致在 DNS 传播期间出现 30 到 60 秒的较长失效转移时间。

### 如何从 Valkey 降级到 Redis OSS
<a name="cross-engine-downgrades.console"></a>

 若因任何原因需要回滚已升级的集群，Amazon ElastiCache 支持将 Valkey 7.2 缓存回滚至 Redis OSS 7.1。您可以使用与引擎升级相同的控制台、API 或 CLI 步骤执行回滚，并将 Redis OSS 7.1 指定为目标引擎版本。回滚过程与升级过程相同。回滚不会更改端点 IP 地址和应用程序的所有其他方面，也不会出现停机。

 此外，您可以将从 Valkey 7.2 缓存创建的快照还原为 Redis OSS 7.1 缓存。从快照还原时，您可以将 Redis OSS 7.1 指定为目标引擎版本。使用此选项时，系统将根据快照创建新的缓存。从快照还原不会影响创建快照时所基于的 Valkey 缓存。

 执行回滚时存在以下要求和限制：
+  ElastiCache 仅支持从 Redis OSS 7.1 回滚到 Valkey 7.2。即使您从低于 Redis OSS 7.1 的版本升级到 Valkey 7.2，也是如此。
+  任何与正在回滚的复制组或无服务器缓存关联的用户组和用户都必须配置引擎类型 `REDIS`。

## 解决 Valkey 或 Redis OSS 引擎升级受阻问题
<a name="resolving-blocked-engine-upgrades"></a>

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


****  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/VersionManagement.HowTo.html)

**解决 Valkey 或 Redis OSS 引擎升级受阻问题**
+ 请执行以下操作之一：
  + 通过取消选中**立即应用**复选框，将 Redis OSS 或 Valkey 引擎升级操作安排在下一维护时段内。

    对于 CLI，请使用 `--no-apply-immediately`。对于 API，请使用 `ApplyImmediately=false`。
  + 等到下一维护时段（或之后）再执行 Redis OSS 引擎升级操作。
  + 将 Redis OSS 纵向扩展操作添加到选中了**立即应用**复选框的集群修改中。

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

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

# ElastiCache 扩展支持
<a name="extended-support"></a>

借助 ElastiCache 扩展支持，您可以在标准支持终止日期后，继续在主要引擎版本上运行缓存，但需要额外付费。如果您在标准支持终止日期后仍未升级，则需要支付费用。

扩展支持提供以下更新和技术支持：
+ 针对缓存和缓存引擎的关键 CVE 和高 CVE 的安全更新
+ 针对关键问题的错误修复和补丁
+ 能够在标准 ElastiCache 服务等级协议范围内建立支持案例并获得故障排除帮助

这项付费服务让您有更多时间升级到支持的主要引擎版本。

例如，Redis OSS 4.0.10 的 ElastiCache 标准支持终止日期为 2026 年 1 月 31 日。如果您在该日期之前未手动升级到 Valkey 或 Redis OSS 6 或更高版本，ElastiCache 会自动为您的缓存注册扩展支持，届时您可以继续运行 Redis OSS 4.0.10。从标准支持终止后的当月第一天（2026 年 2 月 1 日）开始，ElastiCache 会自动向您收取扩展支持费用。

对于主要引擎版本，在标准支持终止日期后，扩展支持可提供长达 3 年的服务。对于 ElastiCache for Redis OSS v4 和 v5，将服务到 2029 年 1 月 31 日。在此日期之后，所有仍在运行 Redis OSS v4 和 v5 的缓存都将自动升级到最新版本的 Valkey。

一旦引擎的支持周期终止，继续运行该旧版本的缓存将立即自动过渡到扩展支持。您将在扩展支持定价开始日期之前收到通知，因此您可以改为升级实例。您也可以随时通过升级到支持的版本来明确选择退出。

有关标准支持终止日期和扩展支持终止日期的更多信息，请参阅适用于 Valkey、Memcached 或 Redis OSS 的 [ElastiCache 适用于 Redis OSS 的版本生命周期终止时间表](engine-versions.md#deprecated-engine-versions)。

**Topics**
+ [

# ElastiCache 扩展支持费用
](extended-support-charges.md)
+ [

# 提供 ElastiCache 扩展支持的版本
](extended-support-versions.md)
+ [

# ElastiCache 和客户在 ElastiCache 扩展支持方面的责任
](extended-support-responsibilities.md)

# ElastiCache 扩展支持费用
<a name="extended-support-charges"></a>

从 ElastiCache 标准支持终止日期的第二天开始，您将为在 ElastiCache 扩展支持中注册的所有引擎付费。有关 ElastiCache 标准支持终止日期，请参阅 [提供 ElastiCache 扩展支持的版本](extended-support-versions.md)。

当您执行以下操作之一时，ElastiCache 扩展支持的额外费用将自动停止：
+ 升级到标准支持涵盖范围内的引擎版本。
+ 删除在 ElastiCache 标准支持终止日期之后运行主要版本的缓存。

如果您的目标引擎版本将来进入扩展支持，将重新开始收费。

例如，假设 ElastiCache for Redis OSS v4 于 2026 年 2 月 1 日进入扩展支持，而您在 2027 年 1 月 1 日将缓存从 v4 升级到 v6。对于 ElastiCache for Redis OSS v4，您只需支付 11 个月的扩展支持费用。如果您在 2027 年 1 月 31 日标准支持终止日期之后继续运行 ElastiCache for Redis OSS v6，那么从 2027 年 2 月 1 日起，这些缓存将再次产生扩展支持费用。

您可以通过阻止 ElastiCache 在标准支持终止日期后创建或还原缓存，避免支付 ElastiCache 扩展支持费用。

有关更多信息，请参阅 [Amazon ElastiCache 定价](https://www.amazonaws.cn/elasticache/pricing/)。

# 提供 ElastiCache 扩展支持的版本
<a name="extended-support-versions"></a>

Redis 开源软件（OSS）v4 和 v5 分别于 2020 年和 2022 年进入其社区生命周期终止日期。这意味着社区不再发布更新、错误修复或安全补丁。ElastiCache for Redis OSS v4 和 v5 的 ElastiCache 标准支持将于 2026 年 1 月 31 日终止。继续使用不支持的 Redis OSS 版本可能会导致您的数据遇到已知[常见漏洞和风险](https://nvd.nist.gov/vuln-metrics/cvss)（CVE）。

从 2026 年 2 月 1 日起，仍在 Redis OSS v4 和 v5 上运行的 ElastiCache 缓存将自动注册扩展支持，以提供持续的可用性和安全性。虽然扩展支持提供了灵活性，但我们建议将标准支持终止日期视为生产工作负载的规划里程碑。我们强烈建议您在标准支持终止日期之前，将 Redis OSS v4 和 v5 缓存升级到 ElastiCache for Valkey 或 ElastiCache for Redis OSS v6 或更高版本。

下表汇总了 Amazon ElastiCache 标准支持终止日期和扩展支持日期。

**扩展支持和生命周期终止时间表**


| 主要引擎版本 | 标准支持终止日期 | 扩展支持开始日期（第 1 年 Premium） | 扩展支持开始日期（第 2 年 Premium） | 扩展支持开始日期（第 3 年 Premium） | 扩展支持终止日期和版本 EOL | 
| --- | --- | --- | --- | --- | --- | 
| Redis OSS v4 | 2026 年 1 月 31 日 | 2026 年 2 月 1 日 | 2027 年 2 月 1 日 | 2028 年 2 月 1 日 | 2029 年 1 月 31 日 | 
| Redis OSS v5 | 2026 年 1 月 31 日 | 2026 年 2 月 1 日 | 2027 年 2 月 1 日 | 2028 年 2 月 1 日 | 2029 年 1 月 31 日 | 
| Redis OSS v6 | 2027 年 1 月 31 日 | 2027 年 2 月 1 日 | 2028 年 2 月 1 日 | 2029 年 2 月 1 日 | 2030 年 1 月 31 日 | 

扩展支持仅适用于每个主要 Redis OSS 版本支持的最新补丁版本。当扩展支持于 2026 年 2 月 1 日开始时，如果您的 Redis OSS v4 和 v5 集群尚未安装最新补丁版本，则在注册扩展支持之前，它们将自动升级到 Redis OSS v4 的 v4.0.10 以及 Redis OSS v5 的 v5.0.6。这可确保您通过扩展支持获得安全更新和错误修复。在扩展支持过渡期间，您不需要执行任何操作即可升级到这些最新补丁版本。

# ElastiCache 和客户在 ElastiCache 扩展支持方面的责任
<a name="extended-support-responsibilities"></a>

以下是 Amazon ElastiCache 的责任以及您在 ElastiCache 扩展支持方面的责任。

**Amazon ElastiCache 的责任**

在 ElastiCache 标准支持终止日期之后，Amazon ElastiCache 将为注册了 ElastiCache 扩展支持的引擎提供补丁、错误修复和升级。这将持续长达 3 年，或者直到您停止使用扩展支持中的引擎为止，以先发生者为准。

**您的责任**

您负责应用针对 ElastiCache 扩展支持中的缓存提供的补丁、错误修复和升级。Amazon ElastiCache 保留随时更改、替换或撤回此类补丁、错误修复和升级的权利。如果需要某个补丁来解决安全或关键稳定性问题，Amazon ElastiCache 将保留使用该补丁更新您的缓存或要求您安装该补丁的权利。

您还负责在 ElastiCache 扩展支持终止日期之前，将引擎升级到更高的引擎版本。ElastiCache 扩展支持终止日期通常是 ElastiCache 标准支持终止日期之后 3 年。

如果您不升级引擎，则在 ElastiCache 扩展支持终止日期之后，Amazon ElastiCache 会尝试将您的引擎升级到 ElastiCache 标准支持所支持的更新引擎版本。如果升级失败，那么 Amazon ElastiCache 将保留删除在 ElastiCache 标准支持终止日期后运行引擎的缓存的权利。但是，在这样做之前，Amazon ElastiCache 将保留您来自该引擎的数据。

# 的版本管理 ElastiCache
<a name="VersionManagement"></a>

管理您希望如何更新针对 Valkey、Mem ElastiCache cached 和 Redis OSS 引擎更新的缓存和基于节点的集群。

## ElastiCache 无服务器缓存的版本管理
<a name="VersionManagement-serverless"></a>

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

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

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

## 基于节点 ElastiCache 的集群的版本管理
<a name="VersionManagement-clusters"></a>

使用基于节点的 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，您可以通过修改集群或复制组并指定新的引擎版本来对启动集群或复制组的版本升级。有关更多信息，请参阅 [修改复制组](Replication.Modify.md)。

**Memcached**

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

从旧版本的 Memcached 升级到 1.4.33 版本或更新版本的 Memcached 时，您应注意以下要求。`CreateCacheCluster` 和 `ModifyCacheCluster` 在下列情况下将失败：
+ 如果 `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 连接开销](ParameterGroups.Engine.md#ParameterGroups.Memcached.Overhead)。

## 支持的引擎和版本
<a name="supported-engine-versions"></a>

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。

**Topics**
+ [支持的 Valkey 版本](#supported-engine-versions.valkey)
+ [Valkey 8.2](#valkey-version-8.2)
+ [Valkey 8.1](#valkey-version-8.1)
+ [Valkey 8.0](#valkey-version-8)
+ [

### ElastiCache 适用于 Valkey 的 7.2.6 版
](#valkey-version-7.2.6)

### 支持的 Valkey 版本
<a name="supported-engine-versions.valkey"></a>

支持的 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 客户端的最佳实践](BestPractices.Clients.redis.md)，包括错误重试和指数回退，以及关于[维护期间最大限度减少停机时间](BestPractices.MinimizeDowntime.md)的最佳实践。
+ 升级引擎时，您无法从 Valkey 或 Redis OSS（已禁用集群模式）直接升级到 Valkey 或 Redis OSS（已启用集群模式）。以下过程演示了如何从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）。

**从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）引擎版本**

  1. 备份 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [进行手动备份](backups-manual.md)。

  1. 使用备份创建具有一个分片（节点组）的 Valkey 或 Redis OSS（已启用集群模式）集群并为其制作种子。在创建集群或复制组时，指定新的引擎版本并启用集群模式。有关更多信息，请参阅 [教程：使用外部创建的备份为新的基于节点的集群制作种子](backups-seeding-redis.md)。

  1. 删除旧 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [删除中的集群 ElastiCache](Clusters.Delete.md)或 [删除复制组](Replication.DeletingRepGroup.md)。

  1. 将新的 Valkey 或 Redis OSS（已启用集群模式）集群或复制组扩展到所需的分片（节点组）数。有关更多信息，请参阅 [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)。
+ 升级主要引擎版本（例如从 5.0.6 升级到 6.0）时，还需要选择一个与新引擎版本兼容的新参数组。
+ 对于单个 Redis OSS 集群以及禁用了多可用区的集群，建议有足够的内存可供 Redis OSS 使用，如[确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存](BestPractices.BGSAVE.md)中所述。在这些情况下，主项在升级过程中不可用于处理服务请求。
+ 对于启用了多可用区的 Redis OSS 集群，我们还建议您在传入的写流量较低期间安排引擎升级。升级到 Redis OSS 5.0.6 或更高版本时，主集群在升级过程中仍可用于服务请求。

  将处理和修补带多个分片的集群和复制组，如下所示：
  + 将并行处理所有分片。在任何时候，仅在分片上执行一次升级操作。
  + 在每个分片中，在处理主副本之前，会先处理所有其他副本。如果一个分片中的副本较少，则可能会在处理完其他分片中的副本之前处理该分片中的主副本。
  + 在所有分片中，主节点都是按顺序处理的。一次只升级一个主节点。
+ 如果已对当前集群或复制组启用了加密，则无法升级到不支持加密的引擎版本，例如，从 3.2.6 升级到 3.2.10。

**Memcached 注意事项**

在升级基于节点的 Memcached 集群时，请注意以下事项。
+ 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是，如果系统或缓存软件中出现严重安全漏洞，则 ElastiCache 保留代表您修补集群的权利。
+ 由于 Memcached 引擎不支持持久化，因此 Memcached 引擎版本升级始终是一个中断性过程，将清除集群中的所有缓存数据。

### ElastiCache 适用于 Valkey 的 8.2 版
<a name="valkey-version-8.2"></a>

以下是 Valkey 8.2 中引入的一些新功能（与 Valke ElastiCache y 8.1 相比）：
+ 对[向量搜索](vector-search.md)的原生支持，使您能够以低至微秒级延迟在内存中存储、索引、搜索和更新数十亿个高维向量嵌入。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)。

有关引入了向量搜索的 Valkey 8.2 版本的更多信息，请参阅 [Valkey Search](https://github.com/valkey-io/valkey-search)。

### ElastiCache 适用于 Valkey 的 8.1 版
<a name="valkey-version-8.1"></a>

以下是 Valkey 8.1 中引入的一些新功能（与 Valke ElastiCache y 8.0 相比）：
+ 一种[新的哈希表](https://valkey.io/blog/new-hash-table/)实现，可减少内存开销，将常见 key/value 模式的内存使用量降低多达20％。
+ 对 [Bloom 筛选条件](https://valkey.io/topics/bloomfilters/)的原生支持，这是一种新的数据类型，与使用 Set 数据类型相比，允许您使用多达 98% 的内存执行查找。
+ 新命令 [COMMANDLOG](https://valkey.io/commands/commandlog-get/)，用于记录执行缓慢情况、大型请求及大型回复。
+ 新增对 SET 命令的条件更新支持（使用 IFEQ 参数）。
+ 性能改进，包括 ZRANK 命令的延迟降低多达 45%，PFMERGE 和 PFCOUNT 的性能提高多达 12 倍，BITCOUNT 的吞吐量提高多达 514%。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey 8.1 版本的更多信息，请参阅 [Valkey 8.1 Release Notes](https://github.com/valkey-io/valkey/blob/8.1/00-RELEASENOTES)

### ElastiCache 适用于 Valkey 的 8.0 版
<a name="valkey-version-8"></a>

以下是 Valkey 8.0 中引入的一些新功能（与 Valkey 7.2.6 相比）： ElastiCache 
+ 内存效率提高，允许用户在不进行任何应用程序更改的情况下在每个节点上存储多达 20% 的数据。
+ 针对基于节点的集群新推出的每插槽指标基础设施，可供详细了解各个插槽的性能和资源使用情况。
+ ElastiCache 适用于 Valkey 8.0 的无服务器可以每 2-3 分钟将支持的每秒请求数 (RPS) 翻一番，在不到 13 分钟的时间内从零达到每个缓存 500 万 RPS，读取延迟始终保持亚毫秒 p50。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey 8 版本的更多信息，请参阅 [Valkey 8 Release Notes](https://github.com/valkey-io/valkey/blob/8.0/00-RELEASENOTES)

### ElastiCache 适用于 Valkey 的 7.2.6 版
<a name="valkey-version-7.2.6"></a>

2024 年 10 月 10 日，Valkey ElastiCache 的 7.2.6 版本发布。以下是 7.2 中引入的一些新功能（与 Redis OSS 的 7.1 ElastiCache 版本相比）：
+ 各种数据类型的性能和内存优化：列表和集合类型键的内存优化、排序集命令的速度优化、集群模式下具有多个键的命令的性能优化、 pub/sub 性能改进、SCAN、HSCAN、ZSCAN 命令的性能优化以及许多其他较小的优化。
+ ZRANK 和 ZREVRANK 命令有新的 WITHSCORE 选项
+ CLIENT NO-TOUCH 允许客户端在不影响按键的情况下运行命令 LRU/LFU 。
+ 新命令 CLUSTER MYSHARDID 返回节点的分片 ID，以便根据复制在集群模式下对节点进行逻辑分组。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey ElastiCache 版本 7.2 的更多信息，请参阅 [Redis OSS 7.2.4 发行说明（Valkey 的](https://github.com/valkey-io/valkey/blob/d2c8a4b91e8c0e6aefd1f5bc0bf582cddbe046b7/00-RELEASENOTES) 7.2 ElastiCache 版本包括从 Redis OSS 的 7.1 ElastiCache 版到 Redis OSS 的 7.2.4 ElastiCache 版的所有更改）。[Valkey 上的 Valkey 7.2 发行说明](https://github.com/valkey-io/valkey/blob/7.2/00-RELEASENOTES) GitHub

## ElastiCache 适用于 Valkey 的 8.2 版
<a name="valkey-version-8.2.main"></a>

以下是 Valkey 8.2 中引入的一些新功能（与 Valke ElastiCache y 8.1 相比）：
+ 对[向量搜索](vector-search.md)的原生支持，使您能够以低至微秒级延迟在内存中存储、索引、搜索和更新数十亿个高维向量嵌入。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)。

有关引入了向量搜索的 Valkey 8.2 版本的更多信息，请参阅 [Valkey Search](https://github.com/valkey-io/valkey-search)。

## ElastiCache 适用于 Valkey 的 8.1 版
<a name="valkey-version-8.1.main"></a>

以下是 Valkey 8.1 中引入的一些新功能（与 Valke ElastiCache y 8.0 相比）：
+ 一种[新的哈希表](https://valkey.io/blog/new-hash-table/)实现，可减少内存开销，将常见 key/value 模式的内存使用量降低多达20％。
+ 对 [Bloom 筛选条件](https://valkey.io/topics/bloomfilters/)的原生支持，这是一种新的数据类型，与使用 Set 数据类型相比，允许您使用多达 98% 的内存执行查找。
+ 新命令 [COMMANDLOG](https://valkey.io/commands/commandlog-get/)，用于记录执行缓慢情况、大型请求及大型回复。
+ 新增对 SET 命令的条件更新支持（使用 IFEQ 参数）。
+ 性能改进，包括 ZRANK 命令的延迟降低多达 45%，PFMERGE 和 PFCOUNT 的性能提高多达 12 倍，BITCOUNT 的吞吐量提高多达 514%。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey 8.1 版本的更多信息，请参阅 [Valkey 8.1 Release Notes](https://github.com/valkey-io/valkey/blob/8.1/00-RELEASENOTES)

## ElastiCache 适用于 Valkey 的 8.0 版
<a name="valkey-version-8.main"></a>

以下是 Valkey 8.0 中引入的一些新功能（与 Valkey 7.2.6 相比）： ElastiCache 
+ 内存效率提高，允许用户在不进行任何应用程序更改的情况下在每个节点上存储多达 20% 的数据。
+ 针对基于节点的集群新推出的每插槽指标基础设施，可供详细了解各个插槽的性能和资源使用情况。
+ ElastiCache 适用于 Valkey 8.0 的无服务器可以每 2-3 分钟将支持的每秒请求数 (RPS) 翻一番，在不到 13 分钟的时间内从零达到每个缓存 500 万 RPS，读取延迟始终保持亚毫秒 p50。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey 8 版本的更多信息，请参阅 [Valkey 8 Release Notes](https://github.com/valkey-io/valkey/blob/8.0/00-RELEASENOTES)

## ElastiCache 适用于 Valkey 的 7.2.6 版
<a name="valkey-version-7.2.6.main"></a>

2024 年 10 月 10 日，Valkey ElastiCache 的 7.2.6 版本发布。以下是 7.2 中引入的一些新功能（与 Redis OSS 的 7.1 ElastiCache 版本相比）：
+ 各种数据类型的性能和内存优化：列表和集合类型键的内存优化、排序集命令的速度优化、集群模式下具有多个键的命令的性能优化、 pub/sub 性能改进、SCAN、HSCAN、ZSCAN 命令的性能优化以及许多其他较小的优化。
+ ZRANK 和 ZREVRANK 命令有新的 WITHSCORE 选项
+ CLIENT NO-TOUCH 允许客户端在不影响按键的情况下运行命令 LRU/LFU 。
+ 新命令 CLUSTER MYSHARDID 返回节点的分片 ID，以便根据复制在集群模式下对节点进行逻辑分组。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey ElastiCache 版本 7.2 的更多信息，请参阅 [Redis OSS 7.2.4 发行说明（Valkey 的](https://github.com/valkey-io/valkey/blob/d2c8a4b91e8c0e6aefd1f5bc0bf582cddbe046b7/00-RELEASENOTES) 7.2 ElastiCache 版本包括从 Redis OSS 的 7.1 ElastiCache 版到 Redis OSS 的 7.2.4 ElastiCache 版的所有更改）。[Valkey 上的 Valkey 7.2 发行说明](https://github.com/valkey-io/valkey/blob/7.2/00-RELEASENOTES) GitHub

## 支持的 Redis OSS 引擎版本
<a name="supported-engine-versions.redis"></a>

ElastiCache 无服务器缓存和基于节点的集群支持所有 Redis OSS 7.1 及更低版本。
+ [ElastiCache 适用于 Redis OSS 的 7.1 版（增强版）](#redis-version-7.1)

**Topics**
+ [

### ElastiCache 适用于 Redis OSS 的 7.1 版（增强版）
](#redis-version-7.1)
+ [

### ElastiCache 适用于 Redis OSS 的 7.0 版（增强版）
](#redis-version-7.0)
+ [

### ElastiCache 适用于 Redis OSS 的 6.2 版（增强版）
](#redis-version-6.2)
+ [

### ElastiCache 适用于 Redis OSS 的 6.0 版（增强版）
](#redis-version-6.0)
+ [

### ElastiCache 适用于 Redis OSS 的 5.0.6 版（增强版）
](#redis-version-5-0.6)
+ [

### ElastiCache 适用于 Redis OSS 的 5.0.5 版（已弃用，使用版本 5.0.6）
](#redis-version-5-0.5)
+ [

### ElastiCache 适用于 Redis OSS 的 5.0.4 版（已弃用，使用版本 5.0.6）
](#redis-version-5-0.4)
+ [

### ElastiCache 适用于 Redis OSS 的 5.0.3 版（已弃用，使用版本 5.0.6）
](#redis-version-5-0.3)
+ [

### ElastiCache 适用于 Redis OSS 的 5.0.0 版（已弃用，使用版本 5.0.6）
](#redis-version-5-0)
+ [

### ElastiCache 适用于 Redis OSS 的 4.0.10 版（增强版）
](#redis-version-4-0-10)
+ [已经终止生命期周期（EOL）版本（3.x）](#redis-version-3-2-10-scheduled-eol)
+ [已经终止生命期周期（EOL）版本（2.x）](#redis-version-2-x-eol)

### ElastiCache 适用于 Redis OSS 的 7.1 版（增强版）
<a name="redis-version-7.1"></a>

此版本包含性能改进，使工作负载能够推动更高的吞吐量和更低的操作延迟。 ElastiCache 适用于 Redis OSS 的 7.1 版本引入了[两个主要的增强功能](https://www.amazonaws.cn/blogs/database/achieve-over-500-million-requests-per-second-per-cluster-with-amazon-elasticache-for-redis-7-1/)：

我们扩展了增强的 I/O 话题功能，使其也能处理表示层逻辑。对于表示层，这是指增强型 I/O 线程现在不仅可以读取客户端输入，还可以将输入解析为 Redis OSS 二进制命令格式。然后将其转发到主线程用于执行，从而提高性能。改进了 Redis OSS 内存访问模式。许多数据结构操作的执行步骤是交错的，以确保并行内存访问并减少内存访问延迟。在基于 Graviton3 `R7g.4xlarge` 或更高版本 ElastiCache 上运行时，客户每个节点每秒可以实现超过 100 万个请求。随着Redis OSS v7.1 ElastiCache 的性能改进，与Redis OSS v7.0相比，客户可以将吞吐量提高多达100％，P99延迟降低50％。 ElastiCache 这些增强功能适用于具有至少 8 个物理内核的节点大小（采用 Graviton 时为 `2xlarge`，采用 x86 时为 `4xlarge`），不受 CPU 类型的限制，并且无需更改客户端。

**注意**  
ElastiCache v7.1 与 Redis OSS v7.0 兼容。

### ElastiCache 适用于 Redis OSS 的 7.0 版（增强版）
<a name="redis-version-7.0"></a>

ElastiCache 适用于 Redis 的 OSS 7.0 增加了许多改进和对新功能的支持：
+ [功能](https://valkey.io/topics/functions-intro/)：适用 ElastiCache 于 Redis 的 OSS 7 增加了对 Redis OSS 函数的支持，并提供了托管体验，使开发人员能够使用存储在 ElastiCache集群中的应用程序逻辑执行 [LUA 脚本](https://valkey.io/topics/eval-intro/)，而无需客户端在每次连接时都将脚本重新发送到服务器。
+ [ACL 改进](https://valkey.io/topics/acl/)：Valkey 和 Redis OSS 7 增加了对下一版本访问控制列表 () ACLs 的支持。客户端现在可以为 Valkey 和 Redis OSS 中的特定键或键空间指定多组权限。
+ [Sharded Pub/Sub](https://valkey.io/topics/pubsub/)： ElastiCache 适用于 Valkey 和 Redis 的 OSS 7 增加了对运行Pub/Sub functionality in a sharded way when running ElastiCache in Cluster Mode Enabled (CME). Pub/Sub的支持，使发布者能够向频道上的任意数量的订阅者发布消息。通道绑定到 ElastiCache 集群中的分片，无需在分片之间传播通道信息，从而提高了可扩展性。
+ 增强的 I/O 多路复用： ElastiCache 对于 Valkey 和 Redis，OSS 7 引入了增强的 I/O 多路复用，可为具有许多并行客户端连接到集群的高吞吐量工作负载提供更高的吞吐量和更短的延迟。 ElastiCache 例如，与 Redis OSS 的版本 6 相比，使用由 r6g.xlarge 节点组成的集群并运行 5200 个并发客户端时，吞吐量（每秒读取和写入操作数）最多可提高 72%，P99 延迟最多可减少 71%。 ElastiCache 

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)。有关 Redis OSS 7.0 版本的更多信息，请参阅 Redis OSS 上[的 Redis OSS 7.0 发行说明](https://github.com/redis/redis/blob/7.0/00-RELEASENOTES)。 GitHub

### ElastiCache 适用于 Redis OSS 的 6.2 版（增强版）
<a name="redis-version-6.2"></a>

ElastiCache 适用于 Redis 的 OSS 6.2 包括支持 TLS 的集群的性能改进，这些集群使用 8 v CPUs 或更高的 x86 节点类型或具有 4 v 或更高的 Graviton2 节点类型。CPUs 这些增强功能通过将加密转移到其他 v CPUs 来提高吞吐量并缩短客户端连接建立时间。 在 Redis OSS 6.2 中，您还可以使用访问控制列表 (ACL) 规则管理对 Pub/Sub 频道的访问权限。

 在此版本中，我们还引入了对包含本地连接的 NVMe SSD 的群集节点上的数据分层支持。有关更多信息，请参阅 [ElastiCache 中的数据分层](data-tiering.md)。

Redis OSS 引擎版本 6.2.6 还引入了对原生 JavaScript 对象表示法 (JSON) 格式的支持，这是一种在 Redis OSS 集群中对复杂数据集进行编码的简单、无架构的方法。借助 JSON 支持，您可以将性能和 Redis OSS APIs 用于通过 JSON 运行的应用程序。有关更多信息，请参阅 [JSON 入门](json-gs.md)。还包括与 JSON 相关的指标，`JsonBasedCmds`以及`JsonBasedCmdsLatency`，这些指标被合并到中 CloudWatch 以监控此数据类型的使用情况。有关更多信息，请参阅 [Valkey 和 Redis OSS 的指标](CacheMetrics.Redis.md)。

您可以使用 6.2 来指定引擎版本。 ElastiCache 将自动调用可用的 Redis OSS 6.2 的首选补丁版本。例如，您可在创建/修改集群时将 `--engine-version` 参数设置为 6.2。集群将使用当前可用的首选补丁版本 Redis OSS 6.2 启动。 creation/modification 如果您在 API 中指定引擎版本 6.x，系统将会使用 Redis OSS 6 的最新次要版本。

对于现有 6.0 集群，您可以通过在、或中将`AutoMinorVersionUpgrade`参数设置为，选择加入下一次 auto `yes` 次要版本升级。`CreateCacheCluster` `ModifyCacheCluster` `CreateReplicationGroup` `ModifyReplicationGroup` APIs ElastiCache 将使用自助服务更新将现有 6.0 集群的次要版本升级到 6.2。有关更多信息，请参阅 [Amazon 中的自助服务更新 ElastiCache](Self-Service-Updates.md)。

调用 DescribeCacheEngineVersions API 时，`EngineVersion`参数值将设置为 6.2，`CacheEngineVersionDescription`字段中将返回带有补丁版本的实际引擎版本。 

有关 Redis OSS 6.2 版本的更多信息，请参阅 [Redis OSS 上的 Redis OSS 6.2 发行说明](https://github.com/redis/redis/blob/6.2/00-RELEASENOTES)。 GitHub

### ElastiCache 适用于 Redis OSS 的 6.0 版（增强版）
<a name="redis-version-6.0"></a>

Amazon ElastiCache 推出了下一版本的 Redis OSS 引擎，其中包括使用[基于角色的访问控制对用户进行身份验证](Clusters.RBAC.md)、客户端缓存和显著的操作改进。 ElastiCache 

 从 Redis OSS 6.0 开始， ElastiCache 将为每个 Redis OSS 次要版本提供一个版本，而不是提供多个补丁版本。 ElastiCache 将自动管理正在运行的集群的补丁版本，从而确保提高性能和增强安全性。

您还可以通过将`AutoMinorVersionUpgrade`参数设置为来选择下一次 auto 次要版本升级，`yes` ElastiCache并将通过自助服务更新来管理次要版本升级。有关更多信息，请参阅 [中的服务更新 ElastiCache](Self-Service-Updates.md)。

您可以通过使用来指定引擎版本`6.0`。 ElastiCache 将自动调用可用的 Redis OSS 6.0 的首选补丁版本。例如，如果您 create/modify 是群集，则将`--engine-version`参数设置为 6.0。则在集群创建/修改时，系统将会使用当前可用的 Redis OSS 6.0 首选补丁版本启动集群。任何包含特定补丁版本值的请求都将被拒绝，同时引发异常且进程会失败。

调用 DescribeCacheEngineVersions API 时，`EngineVersion`参数值将设置为 6.0，`CacheEngineVersionDescription`字段中将返回带有补丁版本的实际引擎版本。 

有关 Redis OSS 6.0 版本的更多信息，请参阅 Redis OSS 上[的 Redis OSS 6.0 发行说明](https://github.com/redis/redis/blob/6.0/00-RELEASENOTES)。 GitHub

### ElastiCache 适用于 Redis OSS 的 5.0.6 版（增强版）
<a name="redis-version-5-0.6"></a>

Amazon ElastiCache 推出了 Redis OSS 引擎的下一个版本，其中包括错误修复和以下累积更新： ElastiCache 
+ 特殊情况下的引擎稳定性保证。
+ 改进的 Hyperloglog 错误处理。
+ 增强的握手命令以进行可靠的复制。
+ 通过 `XCLAIM` 命令进行一致的消息交付跟踪。
+ 对象中改进的 `LFU `字段管理。
+ 使用 `ZPOP` 时增强的事务管理。
+ 能够重命名命令：一个名为 `rename-commands` 的参数，让您可以重命名可能导致意外数据丢失的潜在危险或成本高昂的 Redis OSS 命令，例如 `FLUSHALL` 或 `FLUSHDB`。这与开源 Redis OSS 中的重命名命令配置类似。但是 ElastiCache，通过提供完全托管的工作流程改善了体验。命令名称更改将立即应用，并自动在集群中包含命令列表的所有节点上传播。您无需干预，例如重新启动节点。

  以下示例演示了如何修改现有参数组。它们包括 `rename-commands` 参数，该参数是要重命名的以空格分隔的命令列表：

  ```
  aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group
  --parameter-name-values "ParameterName=rename-commands,  ParameterValue='flushall restrictedflushall'" --region region
  ```

  在本示例中，*rename-commands* 参数用于将 `flushall` 命令重命名为 `restrictedflushall`。

  要重命名多个命令，请使用以下操作：

  ```
  aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group
  --parameter-name-values "ParameterName=rename-commands,  ParameterValue='flushall restrictedflushall flushdb restrictedflushdb''" --region region
  ```

  要还原任何更改，请重新运行该命令并从要保留的 `ParameterValue` 列表中排除任何重命名的值，如下所示：

  ```
  aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group
  --parameter-name-values "ParameterName=rename-commands,  ParameterValue='flushall restrictedflushall'" --region region
  ```

  在本示例中，`flushall` 命令将重命名为 `restrictedflushall`，而任何其他重命名的命令将恢复为其原始命令名称。
**注意**  
在重命名命令时，您将受到以下限制：  
所有重命名的命令都应该是字母数字。
新命令名称的最大长度为 20 个字母数字字符。
重命名命令时，请确保更新与集群关联的参数组。
要完全阻止命令的使用，请使用关键字 `blocked`，如下所示：  

    ```
    aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group
    --parameter-name-values "ParameterName=rename-commands,  ParameterValue='flushall blocked'" --region region
    ```

  有关参数更改以及有资格重命名的命令列表的更多信息，请参阅[Redis OSS 5.0.3 参数更改](ParameterGroups.Engine.md#ParameterGroups.Redis.5-0-3)。
+ Redis OSS Streams：这模拟日志数据结构，允许创建者实时追加新项目。它还允许使用者以阻塞或非阻塞方式使用消息。Streams 还允许代表一组客户端的使用者组以合作方式使用同一消息流的不同部分，类似于 [Apache Kafka](https://kafka.apache.org/documentation/)。有关更多信息，请参阅[流](https://valkey.io/topics/streams-intro)。
+ 支持一系列流命令，例如 `XADD`、`XRANGE` 和 `XREAD`。有关更多信息，请参阅[流命令](https://valkey.io/commands/#stream)。
+ 大量新参数和重命名的参数。有关更多信息，请参阅 [Redis OSS 5.0.0 参数更改](ParameterGroups.Engine.md#ParameterGroups.Redis.5.0)。
+ 一个新的 Redis OSS 指标 `StreamBasedCmds`。
+ Redis OSS 节点的快照时间略快一些。

**重要**  
ElastiCache 已从 [Redis OSS 开源版本](https://github.com/redis/redis/blob/5.0/00-RELEASENOTES) 5.0.1 向后移植了两个严重的错误修复。下面列出了它们：  
在一些密钥过期后，RESTORE 将不匹配回复。
`XCLAIM` 命令可能会返回错误的条目或使协议不同步。
这两个错误修复都包含在 ElastiCache 对 Redis OSS 引擎版本 5.0.0 的 Redis OSS 支持中，并将在未来的版本更新中使用。

有关更多信息，请参阅 [Redis OSS 上的 Redis OSS 5.0.6 发行说明](https://github.com/redis/redis/blob/5.0/00-RELEASENOTES)。 GitHub

### ElastiCache 适用于 Redis OSS 的 5.0.5 版（已弃用，使用版本 5.0.6）
<a name="redis-version-5-0.5"></a>

亚马逊 ElastiCache 推出了 ElastiCache 适用于 Redis OSS 引擎的下一个版本；。它包括在所有计划内操作期间 ElastiCache 对自动故障转移群集的在线配置更改。现在您可以扩展集群，升级 Redis OSS 引擎版本，并应用补丁和维护更新，同时集群可保持在线并继续处理传入请求。它还包括错误修复。

有关更多信息，请参阅 [Redis OSS 上的 Redis OSS 5.0.5 发行说明](https://github.com/redis/redis/blob/5.0/00-RELEASENOTES)。 GitHub

### ElastiCache 适用于 Redis OSS 的 5.0.4 版（已弃用，使用版本 5.0.6）
<a name="redis-version-5-0.4"></a>

亚马逊 ElastiCache 推出了支持的 Redis OSS 引擎的下一个版本。 ElastiCache其中包含以下增强功能：
+ 特殊情况下的引擎稳定性保证。
+ 改进的 Hyperloglog 错误处理。
+ 增强的握手命令以进行可靠的复制。
+ 通过 `XCLAIM` 命令进行一致的消息交付跟踪。
+ 对象中改进的 `LFU `字段管理。
+ 使用 `ZPOP` 时增强的事务管理。

有关更多信息，请参阅 [Redis OSS 上的 Redis OSS 5.0.4 发行说明](https://github.com/redis/redis/blob/5.0/00-RELEASENOTES)。 GitHub

### ElastiCache 适用于 Redis OSS 的 5.0.3 版（已弃用，使用版本 5.0.6）
<a name="redis-version-5-0.3"></a>

亚马逊 ElastiCache 推出了 ElastiCache 适用于Redis OSS引擎的下一个版本，其中包括错误修复。

### ElastiCache 适用于 Redis OSS 的 5.0.0 版（已弃用，使用版本 5.0.6）
<a name="redis-version-5-0"></a>

亚马逊 ElastiCache 推出了 Redis OSS 引擎 ElastiCache 的下一个主要版本。 ElastiCache 适用于 Redis OSS 的 5.0.0 版本支持以下改进：
+ Redis OSS Streams：这模拟日志数据结构，允许创建者实时追加新项目。它还允许使用者以阻塞或非阻塞方式使用消息。Streams 还允许代表一组客户端的使用者组以合作方式使用同一消息流的不同部分，类似于 [Apache Kafka](https://kafka.apache.org/documentation/)。有关更多信息，请参阅[流](https://valkey.io/topics/streams-intro)。
+ 支持一系列流命令，例如 `XADD`、`XRANGE` 和 `XREAD`。有关更多信息，请参阅[流命令](https://valkey.io/commands/#stream)。
+ 大量新参数和重命名的参数。有关更多信息，请参阅 [Redis OSS 5.0.0 参数更改](ParameterGroups.Engine.md#ParameterGroups.Redis.5.0)。
+ 一个新的 Redis OSS 指标 `StreamBasedCmds`。
+ Redis OSS 节点的快照时间略快一些。

### ElastiCache 适用于 Redis OSS 的 4.0.10 版（增强版）
<a name="redis-version-4-0-10"></a>

亚马逊 ElastiCache 推出了 Redis OSS 引擎 ElastiCache 的下一个主要版本。 ElastiCache 适用于 Redis OSS 的 4.0.10 版本支持以下改进：
+ 在线集群大小调整和加密都集中在一个 ElastiCache 版本中。有关更多信息，请参阅下列内容：
  + [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)
  + [Valkey 或 Redis OSS（已启用集群模式）的离线重新分片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)
  + [Amazon ElastiCache 中的数据安全性](encryption.md)
+ 许多新参数。有关更多信息，请参阅 [Redis OSS 4.0.10 参数更改](ParameterGroups.Engine.md#ParameterGroups.Redis.4-0-10)。
+ 支持内存命令系列，如 `MEMORY`。有关更多信息，请参阅[命令](https://valkey.io/commands)（在 MEMO 上搜索）。
+ 支持在线内存碎片整理，从而可实现更高效的内存使用率并可为您的数据提供更多内存。
+ Support 支持异步刷新和删除。 ElastiCache for Redis OSS 支持诸如`FLUSHDB`和之类的命令`UNLINK`，`FLUSHALL`以便在与主线程不同的线程中运行。这样做可以异步释放内存，从而有助于提高应用程序的性能和响应速度。
+ 一个新的 Redis OSS 指标 `ActiveDefragHits`。有关更多信息，请参阅 [Redis OSS 的指标](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CacheMetrics.Redis.html)。

运行 Redis OSS ElastiCache 版本 3.2.10 的 Redis OSS（已禁用集群模式）用户可以使用控制台通过在线升级来升级其集群。


**比较 ElastiCache 集群大小调整和加密支持**  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/engine-versions.html)

### 已经终止生命期周期（EOL）版本（3.x）
<a name="redis-version-3-2-10-scheduled-eol"></a>

#### ElastiCache 适用于 Redis OSS 的 3.2.10 版（增强版）
<a name="redis-version-3-2-10"></a>

亚马逊 ElastiCache 推出了 Redis OSS 引擎 ElastiCache 的下一个主要版本。 ElastiCache 适用于 Redis OSS 的 3.2.10 版（增强）引入了在线集群大小调整功能，以便在集群继续处理传入请求的同时向集群添加或删除分片。 I/O ElastiCache 对于 Redis OSS 3.2.10，用户除了能够加密数据外，还拥有早期 Redis OSS 版本的所有功能。此功能目前仅在版本 3.2.6 中可用。


**比较 R ElastiCache edis OSS 的 3.2.6 和 3.2.10 版本**  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/engine-versions.html)

有关更多信息，请参阅下列内容：
+ [Valkey 或 Redis OSS（已启用集群模式）的离线重新分片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)
+ [在线集群大小调整](best-practices-online-resharding.md)

#### ElastiCache 适用于 Redis OSS 的 3.2.6 版（增强版）
<a name="redis-version-3-2-6"></a>

亚马逊 ElastiCache 推出了 Redis OSS 引擎 ElastiCache 的下一个主要版本。 ElastiCache 适用于 Redis OSS 的 3.2.6 版用户可以访问早期 Redis OSS 版本的所有功能，还可以选择加密其数据。有关更多信息，请参阅下列内容：
+ [ElastiCache 传输中加密 (TLS)](in-transit-encryption.md)
+ [静态加密 ElastiCache](at-rest-encryption.md)
+ [Amazon 合规性验证 ElastiCache](elasticache-compliance.md)

#### ElastiCache 适用于 Redis OSS 的 3.2.4 版（增强版）
<a name="redis-version-3-2-4"></a>

亚马逊 ElastiCache 版本 3.2.4 引入了 Redis OSS 引 ElastiCache 擎的下一个主要版本。 ElastiCache 3.2.4 用户可以使用早期 Redis OSS 版本的所有功能，还可以选择在*集群模式或*非*集群模式下*运行。下表进行了汇总。


**Redis OSS 3.2.4 非集群模式与集群模式对比**  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/engine-versions.html)

**备注：**
+ **分区** – 将数据拆分到 2 到 500 个节点组（分片），为每个节点组提供复制支持的能力。
+ **地理空间索引** – Redis OSS 3.2.4 推出了对通过 6 条 GEO 命令执行地理空间索引的支持。有关更多信息，请参阅“Valkey 命令”页面（针对 GEO 进行筛选）上的 Redis OSS GEO\$1 命令文档[命令：GEO](http://valkey.io/commands#geo)。

有关其他的 Redis OSS 3 功能的信息，请参阅 [Redis OSS 3.2 发布说明](https://github.com/redis/redis/blob/3.2/00-RELEASENOTES)和 [Redis OSS 3.0 发布说明](https://github.com/redis/redis/blob/3.0/00-RELEASENOTES)。

当前 ElastiCache 托管的 Valkey 或 Redis OSS（已启用集群模式）不支持以下 Redis OSS 3.2 功能：
+ 副本迁移
+ 集群重新平衡
+ Lua 调试程序

ElastiCache 禁用以下 Redis OSS 3.2 管理命令：
+ `cluster meet`
+ `cluster replicate`
+ `cluster flushslots`
+ `cluster addslots`
+ `cluster delslots`
+ `cluster setslot`
+ `cluster saveconfig`
+ `cluster forget`
+ `cluster failover`
+ `cluster bumpepoch`
+ `cluster set-config-epoch`
+ `cluster reset`

有关 Redis OSS 3.2.4 参数的信息，请参阅[Redis OSS 3.2.4 参数更改](ParameterGroups.Engine.md#ParameterGroups.Redis.3-2-4)。

### 已经终止生命期周期（EOL）版本（2.x）
<a name="redis-version-2-x-eol"></a>

#### ElastiCache 适用于 Redis OSS 的 2.8.24 版（增强版）
<a name="redis-version-2-8-24"></a>

自版本 2.8.23 起增加的 Redis OSS 改进功能包括错误修复和针对错误内存访问地址的记录功能。有关更多信息，请参阅 [Redis OSS 2.8 发布说明](https://github.com/redis/redis/blob/2.8/00-RELEASENOTES)。

#### ElastiCache 适用于 Redis OSS 的 2.8.23 版（增强版）
<a name="redis-version-2-8-23"></a>

自版本 2.8.22 起增加的 Redis OSS 改进功能包括错误修复。有关更多信息，请参阅 [Redis OSS 2.8 发布说明](https://github.com/redis/redis/blob/2.8/00-RELEASENOTES)。此版本还包括对新参数 `close-on-slave-write` 的支持；如果启用该参数，尝试写入只读副本的客户端将会断开连接。

有关 Redis OSS 2.8.23 参数的更多信息，请参阅用户指南[Redis OSS 2.8.23（加强版）增加的参数](ParameterGroups.Engine.md#ParameterGroups.Redis.2-8-23)中的。 ElastiCache 

#### ElastiCache 适用于 Redis OSS 的 2.8.22 版（增强版）
<a name="redis-version-2-8-22"></a>

自版本 2.8.21 起增加的 Redis OSS 改进功能包括：
+ 支持无分支备份和同步，使您能够为备份开销分配更少内存并为应用程序分配更多内存。有关更多信息，请参阅 [如何实施同步和备份](Replication.Redis.Versions.md)。此无分支过程会影响延迟和吞吐量。当存在高写入吞吐量时，如果副本重新同步，则在整个同步过程中将无法访问副本。
+ 如果存在故障转移，由于副本将尽可能执行与主集群的部分同步而不是执行完整同步，因此复制组现在能够更快地恢复。此外，主集群和副本在同步期间不再使用磁盘，并将进一步加快速度。
+ Support 支持两个新 CloudWatch 指标。
  + `ReplicationBytes` – 复制组的主集群发送到只读副本的字节数。
  + `SaveInProgress` – 一个指示是否有后台保存进程正在运行的二进制值。

   有关更多信息，请参阅 [使用 CloudWatch 指标监控使用情况](CacheMetrics.md)。
+ 修复了复制 PSYNC 行为中的许多关键 Bug。有关更多信息，请参阅 [Redis OSS 2.8 发布说明](https://github.com/redis/redis/blob/2.8/00-RELEASENOTES)。
+ 为了在多可用区复制组中保持增强的复制性能并提高集群稳定性，不再支持非ElastiCache 副本。
+ 为了提高主集群与复制组中的副本之间的数据一致性，该副本不再移出独立于主集群的密钥。
+ Redis OSS 版本 2.8.22 及更高版本不支持 Redis OSS 配置变量 `appendonly` 和 `appendfsync`。
+ 在内存不足的情况下，具有较大的输出缓冲区的客户端可能会与副本集群断开。如果已断开连接，则客户端需要重新连接。此类情况最有可能在 PUBSUB 客户端上出现。

#### ElastiCache 适用于 Redis OSS 的 2.8.21 版
<a name="redis-version-2-8-21"></a>

自版本 2.8.19 起增加的 Redis OSS 改进功能包括大量错误修复。有关更多信息，请参阅 [Redis OSS 2.8 发布说明](https://github.com/redis/redis/blob/2.8/00-RELEASENOTES)。

#### ElastiCache 适用于 Redis OSS 的 2.8.19 版本
<a name="redis-version-2-8-19"></a>

自版本 2.8.6 起增加的 Redis OSS 改进功能包括：
+ Support fo HyperLogLog r. 有关更多信息，请参阅 [Redis OSS 新数据结构：HyperLogLog](http://antirez.com/news/75)。
+ 现在，经过排序的集数据类型通过新命令 `ZRANGEBYLEX`、`ZLEXCOUNT` 和 `ZREMRANGEBYLEX` 支持字典顺序范围查询。
+ 为了防止主节点向副本节点发送陈旧数据，如果后台保存 (`bgsave`) 子进程中止，则主同步会失败。
+ 对*HyperLogLogBasedCommands* CloudWatch指标的 Support。有关更多信息，请参阅 [Valkey 和 Redis OSS 的指标](CacheMetrics.Redis.md)。

#### ElastiCache 适用于 Redis OSS 的 2.8.6 版本
<a name="redis-version-2-8-6"></a>

自版本 2.6.13 起增加的 Redis OSS 改进功能包括：
+ 提高了只读副本的弹性和容错性能。
+ 支持部分重新同步。
+ 支持必须始终可用的只读副本的用户定义最小数目。
+ 完全支持发布/订阅 – 就服务器上发生的事件通知客户端。
+ 自动检测主节点故障并将主节点故障转移至辅助节点。

#### ElastiCache 适用于 Redis OSS 的 2.6.13 版本
<a name="redis-version-2-6-13"></a>

ElastiCache Redis OSS 的 2.6.13 版本是支持 Redis OSS ElastiCache 的初始版本。Redis OSS ElastiCache 版本 2.6.13 不支持多可用区。

## ElastiCache 适用于 Redis OSS 的版本生命周期终止时间表
<a name="deprecated-engine-versions"></a>

本部分定义了较早的主要版本在宣布时的生命周期终止（EOL）日期。这样有助于您为将来做出版本和升级决策。

**注意**  
ElastiCache 不推荐使用 Redis OSS 的 5.0.0 到 5.0.5 版本。使用版本 5.0.6 或更高版本。

下表显示了 Redis OSS 引擎 ElastiCache 的[扩展支持](extended-support.md)时间表。

**扩展支持和生命周期终止时间表**


| 主要引擎版本 | 标准支持终止日期 | 扩展支持开始日期（第 1 年 Premium） | 扩展支持开始日期（第 2 年 Premium） | 扩展支持开始日期（第 3 年 Premium） | 扩展支持终止日期和版本 EOL | 
| --- | --- | --- | --- | --- | --- | 
| Redis OSS v4 | 1/31/2026 | 2026 年 1 月 2 日 | 2027 年 1 月 2 日 | 2028 年 1 月 2 日 | 1/31/2029 | 
| Redis OSS v5 | 1/31/2026 | 2026 年 1 月 2 日 | 2027 年 1 月 2 日 | 2028 年 1 月 2 日 | 1/31/2029 | 
| Redis OSS v6 | 1/31/2027 | 2027 年 1 月 2 日 | 2028 年 1 月 2 日 | 2029 年 1 月 2 日 | 1/31/2030 | 

下表汇总了每个版本及其宣布的生命周期终止日期，以及推荐的升级目标版本。

**已经终止生命周期**


| 源主要版本 | 源次要版本 | 建议升级目标 | 生命周期终止日期 | 
| --- | --- | --- | --- | 
|  版本 3 |  3.2.4、3.2.6 和 3.2.10  |  v6.2 或更高版本  对于 US-ISO-EAST -1、 US-ISO-WEST -1 和 US-ISOB-EAST -1 区域，我们建议使用 5.0.6 或更高版本。   |  2023 年 7 月 31 日  | 
|  版本 2  |  2.8.24、2.8.23、2.8.22、2.8.21、2.8.19、2.8.12、2.8.6、2.6.13  |  v6.2 或更高版本  对于 US-ISO-EAST -1、 US-ISO-WEST -1 和 US-ISOB-EAST -1 区域，我们建议使用 5.0.6 或更高版本。   |  2023 年 1 月 13 日  | 

## 支持 Mem ElastiCache cached 版本
<a name="supported-engine-versions-mc"></a>

ElastiCache 支持以下 Memcached 版本和升级到更新的版本。如果升级到更新的版本，请关注那些会导致升级失败的先决条件。

**Topics**
+ [

### ElastiCache 适用于 Memcached 的 1.6.22 版
](#memcached-version-1-6-22)
+ [

### ElastiCache 适用于 Memcached 的 1.6.17 版
](#memcached-version-1-6-17)
+ [

### ElastiCache 适用于 Memcached 的 1.6.12 版
](#memcached-version-1-6-12)
+ [

### ElastiCache 适用于 Memcached 的 1.6.6
](#memcached-version-1-6-6)
+ [

### ElastiCache 适用于 Memcached 的 1.5.16 版本
](#memcached-version-1-5-16)
+ [

### ElastiCache 适用于 Memcached 的 1.5.10 版
](#memcached-version-1-5-10)
+ [

### ElastiCache 适用于 Memcached 的 1.4.34 版
](#memcached-version-1-4-34)
+ [

### ElastiCache 适用于 Memcached 的 1.4.33 版
](#memcached-version-1-4-33)
+ [

### ElastiCache 适用于 Memcached 的 1.4.24 版
](#memcached-version-1-4-24)
+ [

### ElastiCache 适用于 Memcached 的 1.4.14 版
](#memcached-version-1-4-14)
+ [

### ElastiCache 适用于 Memcached 的 1.4.5
](#memcached-version-1-4-5)

### ElastiCache 适用于 Memcached 的 1.6.22 版
<a name="memcached-version-1-6-22"></a>

ElastiCache 对于适用于 Memcached 的 Memcached 版本 1.6.22，增加了对 Memcached 版本 1.6.22 的支持。该版本未包含任何新功能，但包含对 [Memcached 1.6.18](https://github.com/memcached/memcached/wiki/ReleaseNotes1618) 的错误修复和累积更新。

欲了解更多信息，请参阅 Memcached 上的 [ReleaseNotes1622](https://github.com/memcached/memcached/wiki/ReleaseNotes1622)。 GitHub

### ElastiCache 适用于 Memcached 的 1.6.17 版
<a name="memcached-version-1-6-17"></a>

ElastiCache 对于适用于 Memcached 的 Memcached 版本 1.6.17，增加了对 Memcached 引擎版本 1.6.17 的支持。该版本未包含任何新功能，但包含对 [Memcached 1.6.17](https://github.com/memcached/memcached/wiki/ReleaseNotes1617) 的错误修复和累积更新。

欲了解更多信息，请参阅 Memcached 上的 [ReleaseNotes1617](https://github.com/memcached/memcached/wiki/ReleaseNotes1617)。 GitHub

### ElastiCache 适用于 Memcached 的 1.6.12 版
<a name="memcached-version-1-6-12"></a>

ElastiCache 对于适用于 Memcached 的 Memcached 版本 1.6.12，增加了对 Memcached 引擎 1.6.12 和传输中加密的支持。它包括 [Memcached 1.6.6](https://github.com/memcached/memcached/wiki/ReleaseNotes166) 中的错误修复和累积更新。

有关更多信息，请参阅 Memcached 上的 [ReleaseNotes1612](https://github.com/memcached/memcached/wiki/ReleaseNotes1612)。 GitHub

### ElastiCache 适用于 Memcached 的 1.6.6
<a name="memcached-version-1-6-6"></a>

ElastiCache 适用于 Memcached 版本 1.6.6 的 Memcached 增加了对 Memcached 版本 1.6.6 的支持。它不包含任何新功能，但确实包含错误修复和来自 [Memcached 1.](https://github.com/memcached/memcached/wiki/ReleaseNotes1.5.16) 5.16 的累积更新。 ElastiCache 适用于 Memcached 不包括对 [Ext](https://memcached.org/extstore) store 的支持。

有关更多信息，请参阅 Memcached 上 GitHub的 [ReleaseNotes166](https://github.com/memcached/memcached/wiki/ReleaseNotes166)。

### ElastiCache 适用于 Memcached 的 1.5.16 版本
<a name="memcached-version-1-5-16"></a>

ElastiCache 适用于 Memcached 的 1.5.16 版本增加了对 Memcached 版本 1.5.16 的支持。它没有包含任何新功能，但包含了 [Memcached 1.5.14](https://github.com/memcached/memcached/wiki/ReleaseNotes1514) 和 [Memcached 1.5.15](https://github.com/memcached/memcached/wiki/ReleaseNotes1515) 中的错误修复和累积更新。

有关更多信息，请参阅 [Memcached 上的 Memcached 1.5.16 版本说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1516)。 GitHub

### ElastiCache 适用于 Memcached 的 1.5.10 版
<a name="memcached-version-1-5-10"></a>

ElastiCache 适用于 Memcached 的 1.5.10 版本支持以下 Memcached 功能：
+ 自动 Slab 重新平衡。
+ 使用 `murmur3` 算法实现更快的哈希表查找。
+ 经过分段的 LRU 算法。
+ LRU 爬网程序到后台回收内存。
+ `--enable-seccomp`：一个编译时选项。

它还引入了 `no_modern` 和 `inline_ascii_resp` 参数。有关更多信息，请参阅 [Memcached 1.5.10 参数更改](ParameterGroups.Engine.md#ParameterGroups.Memcached.1-5-10)。

自 1.4.34 ElastiCache 版本以来，为 Memcached 添加的内存缓存改进包括以下内容：
+ 累积修复，例如 ASCII multigets、CVE-2017-9951 和 `metadumper` 的限制爬网。
+ 通过在达到连接限制时关闭连接来改善连接管理。
+ 改进了超过 1MB 的项大小的项大小管理。
+ 通过将每个项的内存需求减少几个字节来提高性能和减少内存开销。

有关更多信息，请参阅 [Memcached 上的 Memcached 1.5.10 版本说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1510)。 GitHub

### ElastiCache 适用于 Memcached 的 1.4.34 版
<a name="memcached-version-1-4-34"></a>

ElastiCache 适用于 Memcached 的 1.4.34 版本未在 1.4.33 版本中添加任何新功能。1.4.34 版是一个错误修复版本，它大于一般的此类版本。

有关更多信息，请参阅 [Memcached 上的 Memcached 1.4.34 版本说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1434)。 GitHub

### ElastiCache 适用于 Memcached 的 1.4.33 版
<a name="memcached-version-1-4-33"></a>

自 v1.4.24 起增加的改进功能包括：
+ 能够为特定 slab 类、slab 类列表或所有 slab 类转储所有元数据。有关更多信息，请参阅 [Memcached 1.4.31 发布说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1431)。
+ 改进对超过 1 MB 默认值的大项目的支持。有关更多信息，请参阅 [Memcached 1.4.29 发布说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1429)。
+ 能够指定在要求关闭客户端之前，客户端可以保持空闲的时间长度。

  能够动态增加可供 Memcached 使用的内存量而无需重新启动集群。有关更多信息，请参阅 [Memcached 1.4.27 发布说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1427)。
+ 现在支持 `fetchers`, `mutations` 和 `evictions` 的日志记录。有关更多信息，请参阅 [Memcached 1.4.26 发布说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1426)。
+ 释放的内存可回收到全局池中并重新分配到新的 slab 类。有关更多信息，请参阅 [Memcached 1.4.25 发布说明](https://github.com/memcached/memcached/wiki/ReleaseNotes1425)。
+ 修复了几个 Bug。
+ 一些新的命令和参数。有关列表，请参阅[Memcached 1.4.33 增加的参数](ParameterGroups.Engine.md#ParameterGroups.Memcached.1-4-33)。

### ElastiCache 适用于 Memcached 的 1.4.24 版
<a name="memcached-version-1-4-24"></a>

自 v1.4.14 起增加的改进功能包括：
+ 使用后台进程的最近最少使用（LRU）的管理。
+ 增加了使用 *jenkins* 或 *murmur3* 作为哈希算法的选项。
+ 一些新的命令和参数。有关列表，请参阅[Memcached 1.4.24 增加的参数](ParameterGroups.Engine.md#ParameterGroups.Memcached.1-4-24)。
+ 修复了几个 Bug。

### ElastiCache 适用于 Memcached 的 1.4.14 版
<a name="memcached-version-1-4-14"></a>

自 v1.4.5 起增加的改进功能包括：
+ 增强了 Slab 重新平衡功能。
+ 性能和可扩展性方面的改进。
+ 引入了 *touch* 命令，可在不获取的情况下更新现有项目的过期时间。
+ Auto Discovery – 客户端程序功能，可以自动确定集群中的所有缓存节点，以及启动和维护与所有这些节点的连接。

### ElastiCache 适用于 Memcached 的 1.4.5
<a name="memcached-version-1-4-5"></a>

ElastiCache 适用于 Memcached 的 1.4.5 版本是亚马逊支持的 Memcached 的初始引擎和版本 ElastiCache 。

# Valkey 的主要引擎版本行为和兼容性差异
<a name="VersionManagementConsiderations-valkey"></a>

Valkey 7.2.6 与 Redis OSS 7.2.4 之前的版本存在类似的兼容性差异。有关支持的最新版本支持的 Valkey，请参阅[支持的引擎和版本](VersionManagement.md#supported-engine-versions)。

有关 Valkey 7.2 版本的更多信息，请参阅 GitHub 上有关 Valkey 的 [Redis OSS 7.2.4 发布说明](https://github.com/valkey-io/valkey/blob/d2c8a4b91e8c0e6aefd1f5bc0bf582cddbe046b7/00-RELEASENOTES)（Valkey 7.2 包括从 Redis OSS 到 7.2.4 版本的所有更改）和 [Valkey 7.2 发布说明](https://github.com/valkey-io/valkey/blob/7.2/00-RELEASENOTES)。

以下是 Valkey 7.2 和 Redis OSS 7.1（或 7.0）之间可能发生的重大行为变化：
+ 冻结时间采样在命令执行期间和在脚本中进行。
+ 当对应的键不再存在时，阻塞的流命令在解除阻塞时会返回不同的错误代码（返回 -NOGROUP 或 -WRONGTYPE，而不是返回 -UNBLOCKED）。
+ 脚本的客户端跟踪现在可以跟踪脚本读取的键值，而不是由 EVAL/FCALL 调用方声明的键。

# Redis OSS 的主要引擎版本行为和兼容性差异
<a name="VersionManagementConsiderations"></a>

**重要**  
以下页面的结构设计为指出版本之间的所有不兼容性差异，并告知您在升级到较新版本时应考虑的任何注意事项。此列表包含升级时可能遇到的任何版本不兼容问题。  
您可以直接从当前 Redis OSS 版本升级到可用的最新 Redis OSS 版本，无需连续升级。例如，您可以直接从 Redis OSS 版本 3.0 升级到版本 7.0。

Redis OSS 版本由包含主要、次要和补丁组件的语义版本标识。例如，在 Redis OSS 4.0.10 中，主要版本为 4，次要版本为 0，补丁版本为 10。这些值通常根据以下约定递增：
+ 主要版本针对 API 不兼容的更改
+ 次要版本针对以向后兼容的方式添加的新功能
+ 补丁版本针对向后兼容的错误修复和非功能性更改

我们建议始终使用给定 **major.minor** 版本中的最新补丁版本，以获得最新的性能和稳定性改进。从 Redis OSS 的 6.0 ElastiCache 版本开始， ElastiCache 将为每个 Redis OSS 次要版本提供一个版本，而不是提供多个补丁版本。 ElastiCache将自动管理正在运行的集群的补丁版本，从而确保提高性能和增强安全性。

我们还建议定期升级到最新的主要版本，因为大多数主要改进都不会向后移植到旧版本。随着新Amazon区域的可用性 ElastiCache 扩展， ElastiCache 对于 Redis，OSS 支持新区域当时最新的两个**主要.minor** 版本。**例如，如果启动了一个新Amazon区域，而 Redis OSS 的最新主要.minor ElastiCache 版本**为 7.0** 和 **6.2**，则 ElastiCache 将在新区域中支持 Redis OSS **7.0** 和 6.2 版本。**Amazon随着适用于 Redis OSS ElastiCache 的较新 major.minor 版本的发布， ElastiCache 将继续增加对新发布版本的支持。要了解有关为其选择区域的更多信息 ElastiCache，请参阅[选择区域和可用区](https://docs.amazonaws.cn/AmazonElastiCache/latest/red-ug/RegionsAndAZs.html#SupportedRegions)。

在进行跨主版本或次版本的升级时，请考虑以下列表，其中包括随着时间的推移随 Redis OSS 发布的行为和向后不兼容更改。

## Redis OSS 7.0 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis70"></a>

有关更改的完整列表，请参阅 [Redis OSS 7.0 发布说明](https://raw.githubusercontent.com/redis/redis/7.0/00-RELEASENOTES)。
+ `SCRIPT LOAD` 和 `SCRIPT FLUSH` 不再传播到副本。如果您需要脚本具有一定的持久性，我们建议您考虑使用 [Redis OSS 函数](https://valkey.io/topics/functions-intro/)。
+ 现在，对于新的 ACL 用户，发布订阅通道默认处于屏蔽状态。
+ `STRALGO` 命令已替换为 `LCS` 命令。
+ `ACL GETUSER` 的格式已更改，因此所有字段都显示标准访问字符串模式。如果您使用 `ACL GETUSER` 实现了自动化，则应验证它是否可以处理任何一种格式。
+ `SELECT`、`WAIT`、`ROLE`、`LASTSAVE`、`READONLY`、`READWRITE` 和 `ASKING` 的 ACL 类别已更改。
+ `INFO` 命令现在显示每个子命令的命令统计信息，而不是在顶级容器命令中显示命令统计信息。
+ 在某些边缘情况下，`LPOP`、`RPOP`、`ZPOPMIN` 和 `ZPOPMAX` 命令的返回值已更改。如果您使用这些命令，则应查看发布说明并评估是否受到影响。
+ `SORT` 和 `SORT_RO` 命令现在需要访问整个键空间才能使用 `GET` 和 `BY` 参数。

## Redis OSS 6.2 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis62"></a>

有关更改的完整列表，请参阅 [Redis OSS 6.2 发布说明](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES)。
+ `TIME`、`ECHO`、`ROLE` 和 `LASTSAVE` 命令的 ACL 标志已更改。这可能会导致先前允许的命令被拒绝，反之亦然。
**注意**  
这些命令不会修改或授予对数据的访问权限。
+ 从 Redis OSS 6.0 升级时，从 lua 脚本的地图响应返回的 key/value 配对的顺序会发生变化。如果您的脚本使用 `redis.setresp()` 或返回映射（Redis OSS 6.0 中的新功能），请考虑脚本可能会在升级时发生中断所带来的影响。

## Redis OSS 6.0 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis60"></a>

有关更改的完整列表，请参阅 [Redis OSS 6.0 发布说明](https://raw.githubusercontent.com/redis/redis/6.0/00-RELEASENOTES)。
+ 允许的最大数据库数量已从 120 万减少到 1 万个。默认值为 16，我们不鼓励使用比这大许多的值，因为我们发现这样会带来性能和内存问题。
+ 将`AutoMinorVersionUpgrade`参数设置为 yes， ElastiCache 将通过自助更新管理次要版本升级。这将通过自助服务更新活动借助标准客户通知渠道进行处理。有关更多信息，请参阅[中的自助服务更新 ElastiCache](Self-Service-Updates.md)。

## Redis OSS 5.0 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis50"></a>

有关更改的完整列表，请参阅 [Redis OSS 5.0 发布说明](https://raw.githubusercontent.com/redis/redis/5.0/00-RELEASENOTES)。
+ 脚本由效果复制，而不是在副本上重新执行脚本。这通常可以提高性能，但可能会增加主副本和副本之间复制的数据量。可以选择恢复到之前的行为，该选项仅在 Redis OSS 的 5.0 ElastiCache 版本中可用。
+ 如果您是从 Redis OSS 4.0 升级，LUA 脚本中的某些命令将以与早期版本不同的顺序返回参数。在 Redis OSS 4.0 中，为了使响应具有确定性，Redis OSS 会按字典顺序对某些响应进行排序，当脚本通过效果复制时，这种排序不适用。
+ 在 Redis OSS 5.0.3 及更高版本中， ElastiCache 对于 Redis，OSS 会将一些 IO 工作卸载到实例类型超过 4 的后台内核。 VCPUs这可能会改变 Redis OSS 的性能特性并更改某些指标的值。有关更多信息，请参阅 [应监控哪些指标？](CacheMetrics.WhichShouldIMonitor.md)，以了解您是否需要更改要关注的指标。

## Redis OSS 4.0 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis40"></a>

有关更改的完整列表，请参阅 [Redis OSS 4.0 发布说明](https://raw.githubusercontent.com/redis/redis/4.0/00-RELEASENOTES)。
+ 慢日志现在记录两个额外参数，即客户端名称和地址。除非您明确依赖包含 3 个值的每个慢日志条目，否则此更改应向后兼容。
+ `CLUSTER NODES` 命令现在返回的格式略有不同，不向后兼容。我们建议客户端不要使用此命令来了解集群中存在的节点，而应使用 `CLUSTER SLOTS`。

## 已经终止生命周期
<a name="VersionManagementConsiderations-redis3x-scheduled"></a>

### Redis OSS 3.2 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis32"></a>

有关更改的完整列表，请参阅 [Redis OSS 3.2 发布说明](https://raw.githubusercontent.com/redis/redis/3.2/00-RELEASENOTES)。
+ 此版本没有兼容性更改需要调用。

有关更多信息，请参阅 [ElastiCache 适用于 Redis OSS 的版本生命周期终止时间表](engine-versions.md#deprecated-engine-versions)。

### Redis OSS 2.8 行为和向后不兼容更改
<a name="VersionManagementConsiderations-redis28"></a>

有关更改的完整列表，请参阅 [Redis OSS 2.8 发布说明](https://raw.githubusercontent.com/redis/redis/2.8/00-RELEASENOTES)。
+ 从 Redis OSS 2.8.22 开始，Redis OSS 不再支持 Redis OSS AOF。 ElastiCache 当数据需要持久保存时，我们建议使用 MemoryDB。
+ 从 Redis OSS 2.8.22 开始， ElastiCache 适用于 Redis 的 OSS 不再支持将副本附加到其中托管的主服务器。 ElastiCache升级时，外部副本将断开连接，且无法重新连接。我们建议使用 Redis OSS 6.0 中提供的客户端缓存作为外部副本的替代方案。
+ 如果键不存在，`TTL` 和 `PTTL` 命令现在返回 -2；如果键存在但没有关联的过期时间，则返回 -1。Redis OSS 2.6 和以前的版本曾经在这两种情况下都返回 -1。
+ 如果未使用任何 `STORE` 选项，`SORT` 和 `ALPHA` 现在将根据本地排序规则语言环境进行排序。

有关更多信息，请参阅 [ElastiCache 适用于 Redis OSS 的版本生命周期终止时间表](engine-versions.md#deprecated-engine-versions)。

# 使用基于节点的集群时的升级注意事项
<a name="VersionManagement-upgrade-considerations"></a>

**注意**  
以下注意事项仅在升级基于节点的集群时适用。它们不适用于 ElastiCache 无服务器。

**Valkey 和 Redis OSS 注意事项**

在升级基于节点的 Valkey 或 Redis OSS 集群时，请注意以下事项。
+ 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是，如果系统或缓存软件中出现严重安全漏洞，则 ElastiCache 保留代表您修补集群的权利。
+ 从 Valkey ElastiCache 的 7.2 ElastiCache 版和 Redis OSS 的 6.0 版开始， ElastiCache 将为每个次要版本提供一个版本，而不是提供多个补丁版本。
+ 从 Redis OSS 引擎版本 5.0.6 开始，您可以在最短的停机时间内升级集群版本。集群在整个升级过程中可供读取，并在大部分升级持续时间内可供写入，但在只持续几秒钟的故障转移操作期间则例外。
+ 您也可以使用低于 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 客户端的最佳实践](BestPractices.Clients.redis.md)，包括错误重试和指数回退，以及关于[维护期间最大限度减少停机时间](BestPractices.MinimizeDowntime.md)的最佳实践。
+ 升级引擎时，您无法从 Valkey 或 Redis OSS（已禁用集群模式）直接升级到 Valkey 或 Redis OSS（已启用集群模式）。以下过程演示了如何从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）。

**从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）引擎版本**

  1. 备份 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [进行手动备份](backups-manual.md)。

  1. 使用备份创建具有一个分片（节点组）的 Valkey 或 Redis OSS（已启用集群模式）集群并为其制作种子。在创建集群或复制组时，指定新的引擎版本并启用集群模式。有关更多信息，请参阅 [教程：使用外部创建的备份为新的基于节点的集群制作种子](backups-seeding-redis.md)。

  1. 删除旧 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [删除中的集群 ElastiCache](Clusters.Delete.md)或 [删除复制组](Replication.DeletingRepGroup.md)。

  1. 将新的 Valkey 或 Redis OSS（已启用集群模式）集群或复制组扩展到所需的分片（节点组）数。有关更多信息，请参阅 [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)。
+ 升级主要引擎版本（例如从 5.0.6 升级到 6.0）时，还需要选择一个与新引擎版本兼容的新参数组。
+ 对于单个 Redis OSS 集群以及禁用了多可用区的集群，建议有足够的内存可供 Redis OSS 使用，如[确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存](BestPractices.BGSAVE.md)中所述。在这些情况下，主项在升级过程中不可用于处理服务请求。
+ 对于启用了多可用区的 Redis OSS 集群，我们还建议您在传入的写流量较低期间安排引擎升级。升级到 Redis OSS 5.0.6 或更高版本时，主集群在升级过程中仍可用于服务请求。

  将处理和修补带多个分片的集群和复制组，如下所示：
  + 将并行处理所有分片。在任何时候，仅在分片上执行一次升级操作。
  + 在每个分片中，在处理主副本之前，会先处理所有其他副本。如果一个分片中的副本较少，则可能会在处理完其他分片中的副本之前处理该分片中的主副本。
  + 在所有分片中，主节点都是按顺序处理的。一次只升级一个主节点。
+ 如果已对当前集群或复制组启用了加密，则无法升级到不支持加密的引擎版本，例如，从 3.2.6 升级到 3.2.10。

**Memcached 注意事项**

在升级基于节点的 Memcached 集群时，请注意以下事项。
+ 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是，如果系统或缓存软件中出现严重安全漏洞，则 ElastiCache 保留代表您修补集群的权利。
+ 由于 Memcached 引擎不支持持久化，因此 Memcached 引擎版本升级始终是一个中断性过程，将清除集群中的所有缓存数据。