*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 时执行)等,具体取决于函数注册时的设置。