*Redis FUNCTION LIST 命令
FUNCTION LIST 用于列出 Redis 函数库中的所有函数及其详细信息。
*语法
FUNCTION LIST [LIBRARYNAME <library-name>] [WITHCODE]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| LIBRARYNAME | Flag | 否 | 仅列出指定库名的函数 |
| library-name | String | 否 | 库名称(配合 LIBRARYNAME 使用) |
| WITHCODE | Flag | 否 | 同时显示函数源代码 |
*返回值
- Array:函数列表,每个元素包含函数元数据
*时间复杂度
O(N),其中 N 是函数库中函数的数量
*示例
*基本用法
> FUNCTION LIST
1) 1) "library_name"
2) "mylib"
3) "engine"
4) "LUA"
5) "functions"
6) 1) 1) "name"
2) "myfunc"
3) "description"
4) (nil)
5) "flags"
6) (empty array)
*显示源代码
> FUNCTION LIST WITHCODE
1) 1) "library_name"
2) "mylib"
3) "engine"
4) "LUA"
5) "functions"
6) 1) 1) "name"
2) "myfunc"
3) "code"
4) "function(keys, args) return 'hello' end"
*按库名过滤
> FUNCTION LIST LIBRARYNAME mylib
1) 1) "library_name"
2) "mylib"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 参数格式错误 | 检查 LIBRARYNAME 后是否跟了库名 |
*最佳实践
- 场景:查看可用函数、审计函数库、调试函数问题
- 建议配合 WITHCODE 进行完整备份或审计
- 可以通过解析输出实现函数库的自动化管理
- 注意:WITHCODE 输出可能很大,谨慎在生产环境使用
*FAQ
Q1: FUNCTION LIST 返回哪些信息? A: 返回库名、引擎类型(如 LUA)、函数列表(名称、描述、标志位等)。带 WITHCODE 时还会返回源代码。
Q2: 如何只查看某个函数的代码? A: 目前 FUNCTION LIST 只能按库名过滤,无法单独查看某个函数。可以通过 LIBRARYNAME 过滤后,在输出中查找目标函数。
Q3: 函数标志位(flags)有哪些? A: 常见标志包括 no-writes(只读函数)、allow-oom(允许 OOM 时执行)等,具体取决于函数注册时的设置。