*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。