*Redis FUNCTION DELETE 命令

FUNCTION DELETE 用于从 Redis 函数库中删除指定的函数。


*语法

FUNCTION DELETE function-name

*参数说明

参数 类型 必填 说明
function-name String 要删除的函数名称

*返回值

  • OK:删除成功
  • Error:函数不存在、权限不足等

*时间复杂度

O(N),其中 N 是函数库中函数的数量


*示例

*基本用法

> FUNCTION LOAD "#!lua name=mylib\nredis.register_function('myfunc', function(keys, args) return 'hello' end)"
mylib
> FUNCTION DELETE myfunc
OK
> FUNCTION LIST
1) 1) "library_name"
   2) "mylib"
   3) "engine"
   4) "LUA"
   5) "functions"
   6) (empty array)

*删除不存在的函数

> FUNCTION DELETE nonexistent
(error) ERR Function not found

*常见错误

错误 原因 解决
ERR Function not found 函数不存在 使用 FUNCTION LIST 确认函数名称
ERR wrong number of arguments 参数数量不足 提供 function-name 参数

*最佳实践

  • 场景:清理不再使用的函数、函数库版本升级
  • 删除前建议先使用 FUNCTION LIST 确认函数存在
  • 注意:删除函数会影响所有调用该函数的客户端
  • 建议在维护窗口期间进行函数删除操作

*FAQ

Q1: 删除函数后还能恢复吗? A: 不能直接恢复,需要重新使用 FUNCTION LOAD 加载。建议定期备份函数库(FUNCTION DUMP)。

Q2: 删除函数会影响正在执行的函数吗? A: 正在执行的函数会继续完成,但新的调用会失败。

Q3: 可以批量删除函数吗? A: 不可以,只能逐个删除。如需清空整个库,使用 FUNCTION FLUSH。