引擎版本的主要行为和与 Redis 的兼容性差异 OSS - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

引擎版本的主要行为和与 Redis 的兼容性差异 OSS

重要

以下页面的结构设计为指出版本之间的所有不兼容性差异,并告知您在升级到较新版本时应考虑的任何注意事项。此列表包含升级时可能遇到的任何版本不兼容问题。

您可以直接从当前的 Redis OSS 版本升级到可用的最新 Redis OSS 版本,无需进行连续升级。例如,您可以直接从 Redis OSS 版本 3.0 升级到 7.0 版。

Redis OSS 版本以语义版本标识,语义版本包括MAJORMINOR、和PATCH组件。例如,在 Redis OSS 4.0.10 中,主要版本为 4,次要版本为 0,补丁版本为 10。这些值通常根据以下约定递增:

  • MAJOR版本适用于不API兼容的更改

  • MINOR版本用于以向后兼容的方式添加的新功能

  • PATCH版本用于向后兼容的错误修复和不起作用的更改

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

我们还建议定期升级到最新的主要版本,因为大多数主要改进都不会向后移植到旧版本。 ElastiCache 随着可用性扩展到新 Amazon 区域,f ElastiCache or Redis OSS 支持最新的MAJOR两个区域。 MINOR当时新区域的版本。例如,如果新 Amazon 区域已启动,则是最新的MAJOR。 MINOR ElastiCache Redis 的版本OSS为 7.0 和 6.2,在新区域中 ElastiCache 将支持 Redis OSS 版本 7.0 和 6.2。 Amazon 和新的一样MAJOR。 MINORf ElastiCache or Redi OSS s 的版本已发布, ElastiCache 将继续增加对新发布版本的支持。要了解有关为其选择区域的更多信息 ElastiCache,请参阅选择区域和可用区

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

Redis OSS 7.0 的行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 7.0 发行说明

  • SCRIPT LOADSCRIPT FLUSH 不再传播到副本。如果您需要为脚本提供一定的耐久性,我们建议您考虑使用 Redis OSS 函数

  • 现在,新ACL用户默认屏蔽了 Pubsub 频道。

  • STRALGO 命令已替换为 LCS 命令。

  • ACL GETUSER 的格式已更改,因此所有字段都显示标准访问字符串模式。如果您使用 ACL GETUSER 实现了自动化,则应验证它是否可以处理任何一种格式。

  • SELECT、、、WAITROLELASTSAVEREADONLYREADWRITE、和的ACL类别ASKING已更改。

  • INFO 命令现在显示每个子命令的命令统计信息,而不是在顶级容器命令中显示命令统计信息。

  • 在某些边缘情况下,LPOPRPOPZPOPMINZPOPMAX 命令的返回值已更改。如果您使用这些命令,则应查看发布说明并评估是否受到影响。

  • SORTSORT_RO 命令现在需要访问整个键空间才能使用 GETBY 参数。

Redis OSS 6.2 的行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 6.2 发行说明

  • TIMEECHOROLE、和LASTSAVE命令的ACL标志已更改。这可能会导致先前允许的命令被拒绝,反之亦然。

    注意

    这些命令不会修改或授予对数据的访问权限。

  • 从 Redis OSS 6.0 升级时,从 lua 脚本的地图响应返回的键/值对的顺序会发生变化。如果您的脚本使用redis.setresp()或返回地图(Redis OSS 6.0 中的新功能),请考虑脚本在升级时可能会中断的影响。

Redis OSS 6.0 行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 6.0 发行说明

  • 允许的最大数据库数量已从 120 万减少到 1 万个。默认值为 16,我们不鼓励使用比这大许多的值,因为我们发现这样会带来性能和内存问题。

  • AutoMinorVersionUpgrade参数设置为 yes, ElastiCache 将通过自助更新管理次要版本升级。这将通过自助服务更新活动借助标准客户通知渠道进行处理。有关更多信息,请参阅中的自助服务更新 ElastiCache

Redis OSS 5.0 行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 5.0 发行说明

  • 脚本由效果复制,而不是在副本上重新执行脚本。这通常可以提高性能,但可能会增加主副本和副本之间复制的数据量。可以选择恢复到之前的行为,该选项仅在 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并更改某些指标的值。有关更多信息,请参阅 应监控哪些指标?,以了解您是否需要更改要关注的指标。

Redis OSS 4.0 的行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 4.0 版本说明

  • 慢日志现在记录两个额外参数,即客户端名称和地址。除非您明确依赖包含 3 个值的每个慢日志条目,否则此更改应向后兼容。

  • CLUSTER NODES 命令现在返回的格式略有不同,不向后兼容。我们建议客户端不要使用此命令来了解集群中存在的节点,而应使用 CLUSTER SLOTS

过去 EOL

Redis OSS 3.2 的行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 3.2 发行说明

  • 此版本没有兼容性更改需要调用。

有关更多信息,请参阅 ElastiCache 适用于 Redis 生命周期OSS终止时间表的版本

Redis OSS 2.8 的行为和向后不兼容的更改

有关变更的完整列表,请参阅 Redis OSS 2.8 发行说明

  • 从 Redis OSS 2.8.22 开始,Redis 不再支持 Red OSS AOF is。 ElastiCache OSS当数据需要持久保存时,我们建议使用 MemoryDB。

  • 从 Redis OSS 2.8.22 开始, ElastiCache For Redis OSS 不再支持将副本附加到其中托管的主服务器上。 ElastiCache升级时,外部副本将断开连接,且无法重新连接。我们建议使用 Redis OSS 6.0 中提供的客户端缓存作为外部副本的替代方案。

  • 如果键不存在,TTLPTTL 命令现在返回 -2;如果键存在但没有关联的过期时间,则返回 -1。对于这两个条件,Redis OSS 2.6 和之前的版本过去都返回 -1。

  • 如果未使用任何 STORE 选项,SORTALPHA 现在将根据本地排序规则语言环境进行排序。

有关更多信息,请参阅 ElastiCache 适用于 Redis 生命周期OSS终止时间表的版本