缓存数据库 Redis 版
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
Geospatial indices 命令族 | 不再支持 GEOENCODE 和 GEODECODE 命令。 | 高 | 检查并移除业务中依赖 GEOENCODE 和 GEODECODE 命令的逻辑。 | |
Lua 脚本 | 在集群模式下,禁止通过 Lua 脚本中构造跨本地节点 slot 的 key。 | 高 | 检查并修改业务使用的 Lua 脚本,避免在 Lua 中构造跨本地节点 slot 的 key。 | |
Expire 与 Evict | 当执行 CLIENT PAUSE 命令时,不会过期或驱逐 key。 长时间执行 CLIENT PAUSE 命令后,从节点的内存开销可能略高于主节点。 | 低 | 了解新增特性。 说明 | |
Pub/Sub 命令族 | LREM 命令会触发键空间(即以 keyspace@<db> 为前缀发布的)事件通知。 | 低 | 检查业务是否存在依赖监听 __keyspace channel 的逻辑,并评估监听结果是否符合预期。 |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
Expire 与 Evict | 不再支持通过 KEYS 命令主动清理已过期的 key。 SCAN 命令仍会删除扫描到的已过期 key。 | 低 | 检查业务是否依赖 KEYS 命令清理过期 key,若有,建议替换为 SCAN 命令。 | |
| 在开启 volatile-lru 内存逐出策略时,Redis 会禁止使用共享对象(shared object)来表示诸如 1、2、3 等数字,以避免共享同一对象的多个键在更新 LRU 信息时互相影响。但该变更会增加一定的内存开销。 然而,当主从复制进行全量复制时,从节点在加载 RDB 文件的过程中并不会复用上述限制策略,导致从节点在恢复数据时仍然为内存中的 key 使用了共享对象。那么就会导致,虽然主从节点的数据内容完全一致,但内存中的对象编码方式不一致,从而导致从节点的实际内存占用低于主节点。 | 低 | 了解新增特性,关注主从节点的内存变化。 | |
Lua 脚本 | Lua 脚本默认使用效果复制,即复制脚本执行产生的命令而不是脚本本身,以避免脚本在主从节点上执行结果不同带来的数据不一致。 | 低 | 了解新增特性。 | |
| 只读脚本会被传播(Propagate)为 SCRIPT LOAD 命令,而不是 EVAL 命令。 | 低 | 了解新增特性。 |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
Propagate | INCRBYFLOAT 在传播(Propagate)过程中,会被重写为不带 TTL 参数的 SET 命令,导致目标端 key 的过期时间被清除。6.0 版本修复后,INCRBYFLOAT 命令会被重写为带有 TTL 参数的 SET 命令,从而在复制或 AOF 回放时正确保留 key 的过期时间。 | 低 | 了解问题修复。 |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
类别 | 兼容性说明 | 影响程度 | 业务调整建议 | 社区 PR |
Lua 脚本 | 禁止在 Lua 脚本中使用全局变量或全局函数。例如,在 7.0 版本中需要使用 redis.log 来代替 print() 函数。 | 高 | 检查业务是否使用了全局变量或全局函数,若有,需修改为本地变量和本地函数。 | |
| 不再针对脚本本身做持久化和复制,SCRIPT LOAD、SCRIPT FLUSH 等脚本管理命令也不再写入复制流或持久化日志。此外,配置项 lua-replicate-commands 被移除,Lua 复制策略固定为效果复制。 | 低 | 火山引擎缓存数据库 Redis 版已支持支持了 Lua 持久化能力,推荐升级到 Redis 7.512.0 或以上版本。 说明 | |
| 新增 LCS 命令用于替代废弃的 STRALGO 命令。 | 高 | 检查并修改业务使用的命令,使用 LCS 命令来替换 STRALGO。 | |
| 优化了 COMMAND GETKEYS 查询非强制要求包含 key 命令时的返回行为,此类场景下将返回空数组,而不再返回错误提示。 | 低 | 命令返回结果优化。 | |
Set 命令族 | 在 RESP3 协议下,SRANDMEMBER 命令的返回类型由 Set 调整为 Array,支持在 COUNT 为负数时返回包含重复元素的结果集。 | 中 | 了解问题修复,检查业务是否存在依赖 SRANDMEMBER 返回的去重后元素,若有,则需要调整对应业务逻辑。 说明 火山引擎缓存数据库 Redis 版已在 Redis 6.512.0 及以上版本中修复上述问题,如暂无计划升级至 Redis 7.0 大版本,建议至少将实例升级至 Redis 6.512.0 或以上版本。 | |
| 优化了 SPOP 命令的参数为负数时的返回结果,错误提示更加明确。 | 低 | 命令返回结果优化。 | |
Sorted set 命令族 | 优化了 ZPOPMIN 和 ZPOPMAX 命令在 key 类型不匹配或传入负数 COUNT 参数时的返回行为,此类场景下将返回明确的错误信息,而不再返回空数组。 | 中 | 了解问题修复,检查业务是否对 ZPOPMIN 和 ZPOPMAX 命令的返回结果进行了合适处理。 | |
List 命令族 | 优化了当 LPOS 命令中 pos 参数为 0 时的返回结果,错误提示更加明确。 | 低 | 命令返回结果优化。 |