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

主要版本行为和兼容性差异

重要

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

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

  • MAJOR 版本针对 API 不兼容的更改

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

  • PATCH 版本针对向后兼容的错误修复和非功能性更改

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

我们还建议定期升级到最新的主要版本,因为大多数主要改进都不会向后移植到旧版本。在进行跨主版本或次版本的升级时,请考虑以下列表,其中包括随着时间的推移随 Redis 发布的行为和向后不兼容更改。

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

有关更改的完整列表,请参阅 Redis 6.2 发布说明

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

    注意

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

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

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

有关更改的完整列表,请参阅 Redis 6.0 发布说明

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

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

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

有关更改的完整列表,请参阅 Redis 5.0 发布说明

  • 脚本由效果复制,而不是在副本上重新执行脚本。这通常可以提高性能,但可能会增加主副本和副本之间复制的数据量。有一个选项可以恢复到之前的行为,该选项仅在 ElastiCache for Redis 5.0 中可用。

  • 如果您是从 Redis 4.0 升级,LUA 脚本中的某些命令将以与早期版本不同的顺序返回参数。在 Redis 4.0 中,Redis 会按字典顺序对某些响应进行排序,以使响应具有确定性,当脚本通过效果复制时,不应用此排序。

  • 从 Redis 5.0.3 开始,ElastiCache for Redis 会将一些 IO 工作转移到具有 4 个 vCPU 以上的实例类型的后台内核。这可能会改变 Redis 的性能特性并更改某些指标的值。有关更多信息,请参阅 ,以了解您是否需要更改要关注的指标。

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

有关更改的完整列表,请参阅 Redis 4.0 发布说明

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

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

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

有关更改的完整列表,请参阅 Redis 3.2 发布说明

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

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

有关更改的完整列表,请参阅 Redis 2.8 发布说明

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

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

  • 如果键不存在,TTLPTTL 命令现在返回 -2;如果键存在但没有关联的过期时间,则返回 -1。Redis 2.6 和以前的版本曾经在这两种情况下都返回 -1。

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