Cache for Redis
Category | Compatibility | Impact level | Business adjustment recommendations | Community PR |
Geospatial indices command group | GEOENCODE and GEODECODE commands are no longer supported. | High | Review and remove any business logic that depends on GEOENCODE or GEODECODE commands. | |
Lua script | Cluster mode prohibits constructing keys that cross local-node slots within Lua scripts. | High | Review and modify Lua scripts used in your business to avoid constructing keys that cross local-node slots within Lua. | |
Expire and Evict | When the CLIENT PAUSE command is executed, keys will not expire or be evicted. After prolonged execution of CLIENT PAUSE, memory overhead on secondary nodes may be slightly higher than that on the primary nodes. | Low | Be aware of the new behavior. tip Volcano Engine Cache for Redis does not support the CLIENT PAUSE command. For more details, refer to Redis open-source command support. | |
Pub/Sub command group | The LREM command now triggers keyspace event notifications (that is, notifications published with the keyspace@<db> prefix). | Low | Check if your business relies on monitoring __keyspace channels and assess whether the monitoring results meet expectations. |
Category | Compatibility | Impact level | Business adjustment recommendations | Community PR |
Expire and Evict | The KEYS command no longer proactively cleans expired keys. The SCAN command still deletes expired keys it encounters. | Low | Check if your business logic uses KEYS to clean expired keys. If so, replace it with SCAN. | |
| With the volatile-lru eviction policy enabled, Redis disables the use of shared objects (for example, for small integers like 1, 2, 3) to prevent multiple keys sharing the same object from interfering with each other's LRU metadata updates. This change increases memory overhead slightly. However, during full primary-secondary synchronization, secondary nodes do not apply this restriction while loading the RDB file. This can cause secondary nodes to use shared objects for keys in memory, leading to identical data content but different object encoding between primary and secondary nodes, resulting in lower actual memory usage on secondary nodes. | Low | Be aware of the new behavior and monitor memory usage differences between primary and secondary nodes. | |
Lua script | Lua scripts now default to effects replication (that is, replicating the commands produced by the script's execution, not the script itself) to prevent data inconsistencies caused by differing execution results on primary and secondary nodes. | Low | Be aware of the new behavior. | |
| Read-only scripts are propagated as SCRIPT LOAD commands instead of EVAL commands. | Low | Be aware of the new behavior. |
Category | Compatibility | Impact level | Business adjustment recommendations | Community PR |
Propagate | During propagation, the INCRBYFLOAT command was incorrectly rewritten as a SET command without a TTL parameter, clearing the expiration time on the target key. Version 6.0 fixes this by rewriting INCRBYFLOAT as a SET command with a TTL parameter, preserving key expiration times correctly during replication and AOF replay. | Low | Learn about bug fixes. |
Category | Compatibility | Impact level | Business adjustment recommendations | Community PR |
Lua script | Prohibit the use of global variables or global functions in Lua scripts.Global variables and functions are prohibited in Lua scripts. For example, use redis.log instead of print() in 7.0 version. | High | Check if your scripts use global variables or functions and convert them to local ones. | |
| Scripts themselves are no longer persisted or replicated. Script management commands like SCRIPT LOAD and SCRIPT FLUSH are no longer written to the replication stream or persistence logs. Additionally, the configuration option lua-replicate-commands has been removed, and Lua replication is now permanently set to effects replication. | Low | Volcano Engine Cache for Redis supports Lua persistence. It is recommended to upgrade to Redis 7.512.0 or later. tip | |
| Add LCS command to replace deprecated STRALGO command. | High | Check and update your business logic to use LCS instead of STRALGO. | |
| Optimized the return behavior of COMMAND GETKEYS for commands that do not strictly require keys. It now returns an empty array instead of an error. | Low | Optimize command return results. | |
Set command group | Under the RESP3 protocol, the return type of SRANDMEMBER changes from Set to Array to support returning duplicate elements when the COUNT parameter is negative. | Medium | Be aware of the fix. Check if your business logic depends on SRANDMEMBER returning deduplicated elements. If so, adjust accordingly. tip Volcano Engine Cache for Redis has fixed this in Redis 6.512.0 and later versions. If you are not planning to upgrade to Redis 7.0, it is recommended to upgrade your instance to at least Redis 6.512.0. | |
| Optimized the error message when the parameter for the SPOP command is negative, making it clearer. | Low | Optimize command return results. | |
Sorted set command group | Optimized the return behavior of ZPOPMIN and ZPOPMAX for mismatched key types or negative COUNT parameters. These scenarios now return a clear error instead of an empty array. | Medium | Be aware of the fix. Check if your business logic handles the return values of ZPOPMIN and ZPOPMAX appropriately. | |
List command group | Optimized the error message when the pos parameter in the LPOS command is 0, making it clearer. | Low | Optimize command return results. |