scripting and functions 族

最近更新时间:2025-12-22 21:27:02

我的收藏
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
-