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

支持的 ElastiCache for Redis 版本

可以使用 用于 Redis 的 Amazon ElastiCache 来构建符合 HIPAA 要求的应用程序。为帮助执行此操作,当您使用 ElastiCache for Redis 版本 3.2.6、4.0.10 或更高版本创建 Redis 集群时,可以启用静态加密、传输中加密和 Redis AUTH。您可以在已实施的与 AWS 签订的商业伙伴协议 (BAA) 下存储与医疗保健相关的信息,包括受保护医疗信息 (PHI)。AWS 范围内服务已由第三方审核员完全评估,由此获得了证书、合规性鉴证或操作授权书 (ATO)。有关更多信息,请参阅以下主题:

注意

由于较新的 Redis 版本提供了更好更稳定的用户体验,使用 ElastiCache 控制台时弃用了 Redis 版本 2.6.13、2.8.6 和 2.8.19。我们建议不要使用这些 Redis 版本。如果需要使用其中一个版本,请将其与 AWS CLI 或 ElastiCache API 结合使用。

有关更多信息,请参阅以下主题:

AWS CLI ElastiCache API

创建集群

创建集群 (AWS CLI)

您不能使用此操作来创建启动了集群的复制组。

创建集群 (ElastiCache API)

您不能使用此操作来创建启动了集群的复制组。

修改集群

使用 AWS CLI

您不能使用此操作来创建启动了集群的复制组。

使用 ElastiCache API

您不能使用此操作来创建启动了集群的复制组。

创建复制组

(AWS CLI) 从头创建 Redis(已禁用集群模式) 复制组

(AWS CLI) 从头创建 Redis(已启用集群模式) 复制组

从头创建 Redis (已禁用集群模式)复制组 (ElastiCache API)

(ElastiCache API) 在 Redis(已启用集群模式) 中从头创建复制组

修改复制组

使用 AWS CLI

使用 ElastiCache API

ElastiCache for Redis 5.0.5 版(加强版)

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

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

ElastiCache for Redis 5.0.4 版(加强版)

用于 Redis 的 Amazon ElastiCache 引入了 Amazon ElastiCache 支持的 Redis 引擎的下一个版本。其中包含以下增强功能:

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

  • 改进的 Hyperloglog 错误处理。

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

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

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

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

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

ElastiCache for Redis 5.0.3 版(加强版)

用于 Redis 的 Amazon ElastiCache 引入了 Amazon ElastiCache 支持的 Redis 引擎的下一个版本。其中包含以下增强功能:

  • 改进排序集边缘情况、准确的内存使用等的错误修复。有关更多信息,请参阅 Redis 5.0.3 发布说明

  • 能够重命名命令:ElastiCache for Redis 5.0.3 包含一个名为 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 参数更改

ElastiCache for Redis 5.0.0 版(加强版)

用于 Redis 的 Amazon ElastiCache 引入了 Amazon ElastiCache 支持的 Redis 引擎的下一个主版本。ElastiCache for Redis 5.0.0 支持以下改进:

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

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

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

  • 一个新的 Redis 指标 StreamBasedCmds

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

重要

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

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

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

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

ElastiCache for Redis 4.0.10 版(加强版)

用于 Redis 的 Amazon ElastiCache 引入了 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 标准的应用程序是必需的。有关更多信息,请参阅ElastiCache for Redis 合规性

ElastiCache for Redis 3.2.10 版(加强版)

用于 Redis 的 Amazon ElastiCache 引入了 Amazon ElastiCache 支持的 Redis 引擎的下一个主版本。ElastiCache for Redis 3.2.10 引入了在线调整集群大小,以便在继续为传入 I/O 请求提供服务的同时从集群中增加或删除分片。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 标准的应用程序是必需的。有关更多信息,请参阅 ElastiCache for Redis 合规性

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

ElastiCache for Redis 3.2.6 版(加强版)

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

ElastiCache for Redis 3.2.4 版(加强版)

用于 Redis 的 Amazon ElastiCache 版本 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 到 90 个节点组(分片)拆分数据。

  • 地理空间索引 – 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 参数更改

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 改进功能包括:

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

  • 支持部分重新同步。

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

  • 全面支持 pub/sub - 将服务器上发生的事件通知客户端。

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

ElastiCache for Redis 版本 2.6.13

用于 Redis 的 Amazon ElastiCache 最开始支持的 Redis 版本是 Redis 版本 2.6.13。Redis 2.6.13 不支持具有自动故障转移功能的多可用区。