Redis 2.8版本标准架构、Redis 4.0、5.0、6.2、7.0,及其 ValKey 8.0标准架构与集群架构均支持 eval、evalsha、script exists、script flush、script load、script kill 命令,均不支持 script debug 命令。集群架构跨 Slot 场景不支持 eval、evalsha、script exists 命令。7.0版本新增 function 相关命令,如下表所示。
命令族 | 命令 | 新增说明 |
function (Redis 7.0新增) | FUNCTION DELETE library-name | 新增 function 功能。 删除一个 lib 和其中的函数。 |
| FUNCTION DUMP | 导出所有函数。 |
| FUNCTION FLUSH [ASYNC | SYNC] | 删除所有的 lib 和其中的函数。 |
| FUNCTION KILL | Kill 当前正在执行中的函数。 |
| FUNCTION LIST [LIBRARYNAME library-name-pattern] [WITHCODE] | 返回 lib 和函数的信息。 |
| FUNCTION LOAD [REPLACE] function-code | 加载/替换函数。 |
| FUNCTION RESTORE serialized-value [FLUSH | APPEND | REPLACE] |
用于恢复之前使用 SAVE 或 BGSAVE 命令保存的快照。 FLUSH:恢复快照之前,当前数据库中的所有数据都会被清空 APPEND:恢复快照之前,当前数据库中的数据将被追加到快照中。 REPLACE:恢复快照之前,当前数据库中的数据将被快照中的数据完全替换。 |
| FUNCTION STATS | 返回当前正在执行的函数的状态。 |
| FCALL function numkeys [key [key ...]] [arg [arg ...]] | 调用某个 function。 |
| FCALL_RO function numkeys [key [key ...]] [arg [arg ...]] | FCALL 的 Readonly 版本。 |
scripting 族 | EVAL_RO script numkeys [key [key ...]] [arg [arg ...]] | 新增命令,可在只读副本中运行 lua script。 |
| EVALSHA_RO sha1 numkeys [key [key ...]] [arg [arg ...]] | 新增命令,可在只读副本中运行 lua script。 |
各版本具体支持情况,请参见下表。✓ 表示支持,x 表示不支持,- 表示该命令不存在跨 Slot 访问的场景。
命令 | Redis 7.0/ValKey 8.0 标准架构 | Redis 7.0/ValKey 8.0 集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
eval | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x |
eval_ro | ✓ | ✓ | x | x | x | x | x | x | x | - |
evalsha | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x |
evalsha_ro | ✓ | ✓ | x | x | x | x | x | x | x | - |
script debug | x | x | x | x | x | x | x | x | x | - |
script exists | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x |
script flush | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |
script load | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |
script kill | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - |
function delete | ✓ | ✓ | x | x | x | x | x | x | x | - |
function kill | ✓ | ✓ | x | x | x | x | x | x | x | - |
function dump | ✓ | ✓ | x | x | x | x | x | x | x | - |
function flush | ✓ | ✓ | x | x | x | x | x | x | x | - |
function list | ✓ | ✓ | x | x | x | x | x | x | x | - |
function load | ✓ | ✓ | x | x | x | x | x | x | x | - |
function restore | ✓ | ✓ | x | x | x | x | x | x | x | - |
function status | ✓ | ✓ | x | x | x | x | x | x | x | - |
fcall | ✓ | ✓ | x | x | x | x | x | x | x | - |
fcall_ro | ✓ | ✓ | x | x | x | x | x | x | x | - |