本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Redis OSS 引擎版本
本节介绍支持的 Redis OSS 引擎版本。
MemoryDB 7.1 版(增强版)
MemoryDB 版本 7.1 增加了对所有区域的矢量搜索功能的支持,还增加了关键错误修复和性能增强。
注意
MemoryDB 版本 7.1 与 Redis OSS v7.0 兼容。有关 Redis OSS 7.0 版本的更多信息,请参阅 Redis 上的 Redis OSS 7.0 发行说明
MemoryDB 版本 7.0(增强版)
MemoryDB 7.0 增加了许多改进和对新功能的支持:
-
Redis OSS
Functions:MemoryDB 7 增加了对 Redis OSS 函数的支持,并提供了托管体验,使开发人员能够使用存储在 MemoryDB 集群上的应用程序逻辑执行LUA脚本 ,而无需客户端在每次连接时都将脚本重新发送到服务器。 -
ACL改进
:MemoryDB 7 增加了对下一版本的 Redis OSS 访问控制列表 () 的支持。ACLs借助 MemoryDB OSS 7,客户端现在可以为 Redis 中的特定密钥或密钥空间指定多组权限。OSS -
Sharded Pub/Sub
:MemoryDB 7 增加了在启用集群模式下运行 MemoryDB 时以分片方式运行 Redis OSS Pub/Sub 功能的支持()。CMERedis 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 上的 Redis OSS 7.0 发行说明
MemoryDB 版本 6.2(增强版)
MemoryDB 推出了下一版本的 Redis OSS 引擎,其中包括自动版本升级支持使用访问控制列表(ACL)对用户进行身份验证、客户端缓存和显著的操作改进。
Redis 引擎版本 6.2.6 还引入了对原生 JavaScript 对象表示法 (JSON) 格式的支持,这是一种在 Redis 集群中对复杂数据集进行编码的简单、无模式的方法。OSS有了JSON支持,您可以利用性能和 Redi OSS APIs s 来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 上的 Redis 6.2 发行说明
升级引擎版本
默认情况下,MemoryDB 自动管理正在运行状态中的集群的补丁版本。此外,如果您将集群的 AutoMinorVersionUpgrade
属性设为 false,则可以选择退出自动次要版本升级。但是,您不能选择退出自动补丁版本更新。
您可以控制为集群提供支持的符合协议标准的软件是否及何时升级到自动升级启动之前的 MemoryDB 所支持的新版本。此级别的控制使您能够与特定版本保持兼容、在生产中部署进行之前使用应用程序测试新版本以及根据自己的条件和时间表执行版本升级。
您可以通过以下方式对您的集群启动引擎版本升级:
通过更新并指定新的引擎版本。有关更多信息,请参阅 修改 MemoryDB 集群。
为相应的引擎版本应用服务更新。有关更多信息,请参阅 MemoryDB 中的服务更新。
请注意以下几点:
您可以升级到较新的引擎版本,但不能降级到较早的引擎版本。要使用较早的引擎版本,必须删除现有的集群,并使用较早的引擎版本重新创建。
我们建议定期升级到最新的主要版本,因为大多数主要改进都不会向后移植到旧版本。随着 MemoryDB 将可用性扩展到新 AWS 区域,MemoryDB 支持新区域当时的两个最新
MAJOR.MINOR
版本。例如,如果启动了一个新 AWS 区域并且最新的 MMAJOR.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 引擎升级操作。
待处理的操作 | 阻止的操作 |
---|---|
纵向扩展 | 立即引擎升级 |
引擎升级 | 立即纵向扩展 |
纵向扩展和引擎升级 | 立即纵向扩展 |
立即引擎升级 |