Redis OSS 引擎版本 - Amazon 内存 DB

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

Redis OSS 引擎版本

本节介绍支持的 Redis OSS 引擎版本。

MemoryDB 7.1 版(增强版)

MemoryDB 版本 7.1 增加了对特定区域预览中的矢量搜索功能的支持,还增加了关键错误修复和性能增强。

  • 矢量搜索功能:矢量搜索可以与现有的 MemoryDB 功能一起使用。不使用矢量搜索的应用程序不会受到其存在的影响。在 MemoryDB 7.1 及更高版本中,以下区域提供矢量搜索预览:美国东部(弗吉尼亚北部和俄亥俄州)、美国西部(俄勒冈)、欧洲(爱尔兰)和亚太地区(东京)。有关如何启用矢量搜索预览和相关功能的信息,请参阅此处的文档。

注意

MemoryDB 版本 7.1 与 Redis OSS v7.0 兼容。有关 Redis OSS 7.0 版本的更多信息,请参阅 Redis OSS 上的 Redis OSS 7.0 发行说明。 GitHub

MemoryDB 版本 7.0(增强版)

MemoryDB 7.0 增加了许多改进和对新功能的支持:

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

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

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

  • 增强的 I/O 多路复用:MemoryDB OSS 版本 7 引入了增强的 I/O 多路复用,它可以提高吞吐量并减少延迟,适用于与 MemoryDB 集群有许多并发客户端连接的高吞吐量工作负载。例如,与 MemoryDB 版本 6 相比,使用由 r6g.4xlarge 节点组成的集群并运行 5200 个并发客户端时,吞吐量(每秒读取和写入操作数)最多可提高 46%,P99 延迟最多可减少 21%。

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

MemoryDB 版本 6.2(增强版)

MemoryDB 推出了下一版本的 Redis OSS 引擎,其中包括自动版本升级支持使用访问控制列表(ACL)对用户进行身份验证、客户端缓存和显著的操作改进。

Redis 引擎版本 6.2.6 还引入了对原生 JavaScript 对象表示法 (JSON) 格式的支持,这是一种在 Redis OSS 集群中对复杂数据集进行编码的简单、无架构的方法。借助 JSON 支持,您可以将性能和 Redis OSS API 用于通过 JSON 运行的应用程序。有关更多信息,请参阅 开始使用 JSON。还包括与 JSON 相关的指标JsonBasedCmds,该指标 CloudWatch 用于监控此数据类型的使用情况。有关更多信息,请参阅 MemoryDB 的指标

在 Redis OSS 6 中,MemoryDB 将为每个 Redis OSS 次要版本提供一个版本,而不是提供多个补丁版本。其旨在最大限度减少不得不从多个次要版本中选择时所产生的混淆和歧义。MemoryDB 还将自动管理处于运行状态下集群的次要版本和补丁版本,确保提高性能和增强安全性。这将通过服务更新活动借助标准客户通知渠道进行处理。有关更多信息,请参阅 MemoryDB 中的服务更新

如果您在创建时未指定引擎版本,MemoryDB 将自动为您选择首选的 Redis OSS 版本。另一方面,如果您使用指定引擎版本6.2,MemoryDB 将自动调用可用的 Redis OSS 6.2 的首选补丁版本。

例如,当您创建集群时,可以将 --engine-version 参数设置为 6.2。则在创建时,系统将会使用当前可用的首选补丁版本启动集群。任何包含全文引擎版本值的请求都将被拒绝,同时引发异常且进程会失败。

当调用 DescribeEngineVersions API 时,EngineVersion 参数值将设置为 6.2,实际全文引擎版本会返回在 EnginePatchVersion 字段中。

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

升级引擎版本

默认情况下,MemoryDB 自动管理正在运行状态中的集群的补丁版本。此外,如果您将集群的 AutoMinorVersionUpgrade 属性设为 false,则可以选择退出自动次要版本升级。但是,您不能选择退出自动补丁版本更新。

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

您可以通过以下方式对您的集群启动引擎版本升级:

请注意以下几点:

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

  • 我们建议定期升级到最新的主要版本,因为大多数主要改进都不会向后移植到旧版本。随着 MemoryDB 将可用性扩展到新 AWS 区域,MemoryDB 支持新区域当时的两个最新MAJOR.MINOR版本。例如,如果启动了一个新 AWS 区域并且最新的 M MAJOR.MINOR emoryDB 版本为 7.0 和 6.2,则 MemoryDB 将在新区域中支持 7.0 和 6.2 版本。 AWS 随着新MAJOR.MINOR版本的 MemoryDB 发布,MemoryDB 将继续增加对新发布的 MemoryDB 版本的支持。要详细了解如何为 MemoryDB 选择区域,请参阅 支持的区域和端点

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

  • MemoryDB 将为每个 Redis OSS 次要版本提供单一版本,而不提供多个补丁版本。其支持旨在最大限度减少不得不从多个版本中选择时所产生的混淆和歧义。MemoryDB 还将自动管理处于运行状态下集群的次要版本和补丁版本,确保提高性能和增强安全性。这将通过服务更新活动借助标准客户通知渠道进行处理。有关更多信息,请参阅 MemoryDB 中的服务更新

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

  • 我们建议您在传入的写流量较低期间安排引擎升级。

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

    • 在任何时候,仅在每个分片上执行一次升级操作。

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

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

如何升级引擎版本

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

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

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

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