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

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

支持的 ElastiCache for Redis 版本

ElastiCache 无服务器缓存支持以下 Redis 版本:

ElastiCache for Redis 版本 7.1(加强版)

此版本包含性能改进,使工作负载能够实现更高的吞吐量和更低的操作延迟。ElastiCache 7.1 引入了两项主要增强功能

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

注意

ElastiCache v7.1 与 OSS Redis v7.0 兼容。

ElastiCache for Redis 版本 7.0(加强版)

ElastiCache for Redis 7.0 增加了多项改进和对新功能的支持:

  • Redis Functions:ElastiCache for Redis 7 增加了对 Redis Functions 的支持,并提供了托管体验,使开发人员能够使用存储在 ElastiCache 集群上的应用程序逻辑执行 LUA 脚本,而无需客户端在每次连接时都将脚本重新发送到服务器。

  • ACL 改进:ElastiCache for Redis 7 增加了对下一版本的 Redis 访问控制列表(ACL)的支持。借助 ElastiCache for Redis 7,客户端现在可以为 Redis 中的特定键或键空间指定多组权限。

  • 分片发布/订阅:ElastiCache for Redis 7 增加了对在启用集群模式(CME)下运行 ElastiCache 时以分片方式运行 Redis 发布/订阅功能的支持。Redis 发布/订阅功能使发布者能够向频道上任意数量的订阅者发布消息。借助 Amazon ElastiCache for Redis 7,频道可绑定到 ElastiCache 集群中的分片,无需在分片之间传播频道信息,从而提高了可扩展性。

  • 增强型 I/O 多路复用:ElastiCache for Redis 版本 7 引入了增强型 I/O 多路复用,此功能为与 ElastiCache 集群有着许多并发客户端连接的高吞吐量工作负载提供了更高的吞吐量和更短的延迟。例如,与 ElastiCache for Redis 版本 6 相比,当使用由 r6g.xlarge 节点组成的集群并运行 5200 个并发客户端时,吞吐量(每秒读写操作数)可以提高多达 72%,P99 延迟可减少多达 71%。

有关 Redis 7.0 版本的更多信息,请在 GitHub 上参阅 Redis 的 Redis 7.0 发布说明

ElastiCache for Redis 版本 6.2(加强版)

ElastiCache for Redis 6.2 包含多项针对启用 TLS 的集群的性能改进,包括具有 8 个或以上 vCPU 的使用 x86 节点类型的集群,以及具有 4 个或以上 vCPU 的使用 Graviton2 节点类型的集群。这些增强功能通过将加密操作转移到其他 vCPU 来提高吞吐量并缩短建立客户端连接所需的时间。Redis 6.2 还支持使用访问控制列表(ACL)规则来管理对发布/订阅频道的访问。

在此版本中,我们还推出支持在包含本地挂载 NVMe SSD 的集群节点上使用数据分层功能。有关更多信息,请参阅数据分层

Redis 引擎版本 6.2.6 还引入了对原生 JavaScript 对象表示法(JSON)格式的支持,这是在 Redis 集群中对复杂数据集进行编码的一种简单的无 Schema 的方法。借助 JSON 支持,您可以帮助基于 JSON 运行的应用程序利用性能和 Redis API。有关更多信息,请参阅 JSON 入门。还包括与 JSON 相关的指标 JsonBasedCmdsJsonBasedCmdsLatency,它们被合并到 CloudWatch 中以监控此数据类型的使用情况。有关更多信息,请参阅Redis 的指标

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

对于现有的 6.0 集群,您可以在 CreateCacheClusterModifyCacheClusterCreateReplicationGroupModifyReplicationGroup API 中将 AutoMinorVersionUpgrade 参数设置为 yes,从而选择加入下一次自动次要版本升级。ElastiCache for Redis 会使用自助更新功能将现有 6.0 集群的次要版本升级到 6.2。有关更多信息,请参阅 Amazon ElastiCache 中的自助更新

在调用 DescribeCacheEngineVersions API 时,EngineVersion 参数值将会设置为 6.2,并且将会在 CacheEngineVersionDescription 字段中返回实际引擎版本以及补丁版本。 

有关 Redis 6.2 版本的更多信息,请参阅 GitHub 上有关 Redis 的 Redis 6.2 发布说明

ElastiCache for Redis 版本 6.0(加强版)

Amazon ElastiCache for Redis 推出新版本的 Redis 引擎,其中包括使用基于角色的访问控制对用户进行身份验证、客户端缓存和重要的操作改进。

从 Redis 6.0 开始,ElastiCache for Redis 将为每个 Redis OSS 次要版本提供单一版本,而不提供多个补丁版本。ElastiCache for Redis 还将自动管理正在运行状态中的缓存群集的补丁版本,确保更好的性能和安全性。

您还可以通过将 AutoMinorVersionUpgrade 参数设置为 yes 来选择加入下一次自动次要版本升级,然后 ElastiCache for Redis 将使用自助更新功能来管理次要版本升级。有关更多信息,请参阅中的服务更新 ElastiCache

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

在调用 DescribeCacheEngineVersions API 时,EngineVersion 参数值将会设置为 6.0,并且将会在 CacheEngineVersionDescription 字段中返回实际引擎版本以及补丁版本。 

有关 Redis 6.0 版本的更多信息,请在 GitHub 上参阅 Redis 的 Redis 6.0 发布说明

ElastiCache for Redis 版本 5.0.6(加强版)

Amazon ElastiCache for Redis 推出新版本的 Redis 引擎,其中包含多项错误修复及以下累积更新:

  • 特殊情况下的引擎稳定性保证。

  • 改进的 Hyperloglog 错误处理。

  • 增强的握手命令以进行可靠的复制。

  • 通过 XCLAIM 命令进行一致的消息交付跟踪。

  • 对象中改进的 LFU 字段管理。

  • 使用 ZPOP 时增强的事务管理。

  • 能够重命名命令:一个名为 rename-commands 的参数,允许您重命名可能导致意外数据丢失的潜在危险或成本高昂的 Redis 命令,例如 FLUSHALLFLUSHDB。这与开源 Redis 中的重命名命令配置类似。但是,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 5.0.3 参数更改

  • Redis Streams:这模拟日志数据结构,允许创建者实时追加新项目。它还允许使用者以阻塞或非阻塞方式使用消息。Streams 还允许代表一组客户端的使用者组以合作方式使用同一消息流的不同部分,类似于 Apache Kafka。有关更多信息,请参阅 Redis 流简介

  • 支持一系列流命令,例如 XADDXRANGEXREAD。有关更多信息,请参阅 Redis 流命令

  • 大量新参数和重命名的参数。有关更多信息,请参阅Redis 5.0.0 参数更改

  • 一个新的 Redis 指标 StreamBasedCmds

  • Redis 节点的快照时间略快一些。

重要

Amazon ElastiCache for Redis 从开源版本 5.0.1 中反向移植了两个关键错误修复。下面列出了它们:

  • 在一些密钥过期后,RESTORE 将不匹配回复。

  • XCLAIM 命令可能会返回错误的条目或使协议不同步。

这两个错误修复都包含在 ElastiCache for Redis 对 Redis 引擎版本 5.0.0 的支持中,并且将在未来版本更新中使用。

有关更多信息,请参阅 GitHub 上关于 Redis 的 Redis 5.0.6 发行说明

ElastiCache for Redis 版本 5.0.5(已弃用,使用 5.0.6 版本)

Amazon ElastiCache for Redis 推出新版本的 Redis 引擎。该版本中包括在所有计划的操作期间针对自动故障转移集群的 ElastiCache for Redis 的在线配置更改。现在您可以扩展集群,升级 Redis 引擎版本,并应用补丁和维护更新,同时集群可保持在线并继续处理传入请求。它还包括错误修复。

有关更多信息,请参阅 GitHub 上关于 Redis 的 Redis 5.0.5 发行说明

ElastiCache for Redis 版本 5.0.4(已弃用,使用 5.0.6 版本)

Amazon ElastiCache for Redis 推出了受 Amazon ElastiCache 支持的下一版 Redis 引擎。其中包含以下增强功能:

  • 特殊情况下的引擎稳定性保证。

  • 改进的 Hyperloglog 错误处理。

  • 增强的握手命令以进行可靠的复制。

  • 通过 XCLAIM 命令进行一致的消息交付跟踪。

  • 对象中改进的 LFU 字段管理。

  • 使用 ZPOP 时增强的事务管理。

有关更多信息,请参阅 GitHub 上关于 Redis 的 Redis 5.0.4 发布说明

ElastiCache for Redis 版本 5.0.3(已弃用,使用 5.0.6 版本)

Amazon ElastiCache for Redis 推出了受 Amazon ElastiCache 支持的新版本 Redis 引擎,该版本中包括多项错误修复。

ElastiCache for Redis 版本 5.0.0(已弃用,使用 5.0.6 版本)

Amazon ElastiCache for Redis 推出了受 Amazon ElastiCache 支持的 Redis 引擎的下一个主要版本。ElastiCache for Redis 5.0.0 包含对以下改进的支持:

  • Redis Streams:这模拟日志数据结构,允许创建者实时追加新项目。它还允许使用者以阻塞或非阻塞方式使用消息。Streams 还允许代表一组客户端的使用者组以合作方式使用同一消息流的不同部分,类似于 Apache Kafka。有关更多信息,请参阅 Redis 流简介

  • 支持一系列流命令,例如 XADDXRANGEXREAD。有关更多信息,请参阅 Redis 流命令

  • 大量新参数和重命名的参数。有关更多信息,请参阅Redis 5.0.0 参数更改

  • 一个新的 Redis 指标 StreamBasedCmds

  • Redis 节点的快照时间略快一些。

ElastiCache for Redis 版本 4.0.10(加强版)

Amazon ElastiCache for Redis 推出了受 Amazon ElastiCache 支持的 Redis 引擎的下一个主要版本。ElastiCache for Redis 4.0.10 包含对以下改进的支持:

运行 Redis 3.2.10 版的 Redis 用户(集群模式已禁用)可以使用控制台通过在线升级来升级自己的集群。

ElastiCache for Redis 集群大小调整和加密支持对比
版本
功能 3.2.6 3.2.10 4.0.10 及后续版本
在线集群大小调整*
传输中加密 **
静态加密**
* 添加、删除和重新平衡分片。
** 对于符合 FedRAMP、HIPAA 和 PCI DSS 标准的应用程序是必需的。有关更多信息,请参阅Amazon ElastiCache 的合规性验证

已经终止生命期周期(EOL)版本(3.x)

ElastiCache for Redis 版本 3.2.10(加强版)

Amazon ElastiCache for Redis 推出了受 Amazon ElastiCache 支持的 Redis 引擎的下一个主要版本。ElastiCache for Redis 3.2.10 推出了在线调整集群大小的功能,以便在集群中添加或删除分区时可以继续为传入输入/输出请求提供服务。ElastiCache for Redis 3.2.10 用户可使用早期 Redis 版本的所有功能,但数据加密功能除外。此功能目前仅在版本 3.2.6 中可用。

ElastiCache for Redis 版本 3.2.6 和 3.2.10 对比
版本
功能 3.2.6 3.2.10
在线集群大小调整*
传输中加密 **
静态加密**
* 添加、删除和重新平衡分片。
** 对于符合 FedRAMP、HIPAA 和 PCI DSS 标准的应用程序是必需的。有关更多信息,请参阅Amazon ElastiCache 的合规性验证

有关更多信息,请参阅下列内容:

ElastiCache for Redis 版本 3.2.6(加强版)

Amazon ElastiCache for Redis 推出了受 Amazon ElastiCache 支持的 Redis 引擎的下一个主要版本。ElastiCache for Redis 3.2.6 用户可使用早期 Redis 版本的所有功能以及加密数据的选项。有关更多信息,请参阅下列内容:

ElastiCache for Redis 版本 3.2.4(加强版)

Amazon ElastiCache for Redis 版本 3.2.4 推出了受 Amazon ElastiCache 支持的 Redis 引擎的下一个主要版本。ElastiCache for Redis 3.2.4 用户可使用早期版本的 Redis 中的所有功能,并且能够在集群模式非集群模式下运行。下表进行了汇总。

Redis 3.2.4 非集群模式与集群模式对比
功能 非集群模式 集群模式
数据分区
地理空间索引
更改节点类型 是*
副本扩展 是*
扩展 是*
数据库支持 多个 单列排序

参数组

default.redis3.2 **

default.redis3.2.cluster.on **

*请参阅 从备份还原到新缓存

**或从其派生的某个参数组。

注意:
  • 分区 – 将数据拆分到 2 到 500 个节点组(分片),为每个节点组提供复制支持的能力。

  • 地理空间索引 – Redis 3.2.4 推出了对通过 6 条 GEO 命令执行地理空间索引的支持。有关更多信息,请参阅 Redis Commands 页面(针对 GEO 进行筛选)上的 Redis GEO* 命令文档 Redis 命令:GEO

有关其他的 Redis 3 功能的信息,请参阅 Redis 3.2 发布说明Redis 3.0 发布说明

当前,ElastiCache 托管式 Redis(集群模式已禁用)不支持以下 Redis 3.2 功能:

  • 副本迁移

  • 集群重新平衡

  • Lua 调试程序

ElastiCache 禁用了以下 Redis 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 3.2.4 参数的信息,请参阅Redis 3.2.4 参数更改

已经终止生命期周期(EOL)版本(2.x)

ElastiCache for Redis 版本 2.8.24(加强版)

自版本 2.8.23 起增加的 Redis 改进功能包括错误修复和针对错误内存访问地址的记录功能。有关更多信息,请参阅 Redis 2.8 发布说明

ElastiCache for Redis 版本 2.8.23(加强版)

自版本 2.8.22 起增加的 Redis 改进功能包括 Bug 修复。有关更多信息,请参阅 Redis 2.8 发布说明。此版本还包括对新参数 close-on-slave-write 的支持;如果启用该参数,尝试写入只读副本的客户端将会断开连接。

有关 Redis 2.8.23 参数的更多信息,请参见 ElastiCache 用户指南中的 Redis 2.8.23(加强版)增加的参数

ElastiCache for Redis 版本 2.8.22(增强版)

自版本 2.8.21 起增加的 Redis 改进功能包括:

  • 支持无分支备份和同步,使您能够为备份开销分配更少内存并为应用程序分配更多内存。有关更多信息,请参阅如何实施同步和备份。此无分支过程会影响延迟和吞吐量。当存在高写入吞吐量时,如果副本重新同步,则在整个同步过程中将无法访问副本。

  • 如果存在故障转移,由于副本将尽可能执行与主集群的部分同步而不是执行完整同步,因此复制组现在能够更快地恢复。此外,主集群和副本在同步期间不再使用磁盘,并将进一步加快速度。

  • 支持两个新的 CloudWatch 指标。

    • ReplicationBytes – 复制组的主集群发送到只读副本的字节数。

    • SaveInProgress – 一个指示是否有后台保存进程正在运行的二进制值。

    有关更多信息,请参阅使用 CloudWatch 指标监控使用情况

  • 修复了复制 PSYNC 行为中的许多关键 Bug。有关更多信息,请参阅 Redis 2.8 发布说明

  • 为保持多可用区复制组中增强的复制性能并提高集群的稳定性,将不再支持非 ElastiCache 副本。

  • 为了提高主集群与复制组中的副本之间的数据一致性,该副本不再移出独立于主集群的密钥。

  • Redis 版本 2.8.22 及更高版本不支持 Redis 配置变量 appendonlyappendfsync

  • 在内存不足的情况下,具有较大的输出缓冲区的客户端可能会与副本集群断开。如果已断开连接,则客户端需要重新连接。此类情况最有可能在 PUBSUB 客户端上出现。

ElastiCache for Redis 版本 2.8.21

自版本 2.8.19 起增加的 Redis 改进功能包括大量 Bug 修复。有关更多信息,请参阅 Redis 2.8 发布说明

ElastiCache for Redis 版本 2.8.19

自版本 2.8.6 起增加的 Redis 改进功能包括:

  • 支持 HyperLogLog。有关更多信息,请参阅 Redis new data structure: HyperLogLog

  • 现在,经过排序的集数据类型通过新命令 ZRANGEBYLEXZLEXCOUNTZREMRANGEBYLEX 支持字典顺序范围查询。

  • 为了防止主节点向副本节点发送陈旧数据,如果后台保存 (bgsave) 子进程中止,则主同步会失败。

  • HyperLogLogBasedCommands CloudWatch 指标的支持。有关更多信息,请参阅Redis 的指标

ElastiCache for Redis 版本 2.8.6

自版本 2.6.13 起增加的 Redis 改进功能包括:

  • 提高了只读副本的弹性和容错性能。

  • 支持部分重新同步。

  • 支持必须始终可用的只读副本的用户定义最小数目。

  • 完全支持发布/订阅 – 就服务器上发生的事件通知客户端。

  • 自动检测主节点故障并将主节点故障转移至辅助节点。

ElastiCache for Redis 版本 2.6.13

Amazon ElastiCache for Redis 最开始支持的 Redis 版本是 Redis 版本 2.6.13。Redis 2.6.13 不支持多可用区。