文章目录

Redis FUNCTION LIST查看已注册的函数库信息

发布于 2026-04-26 06:19:59 · 浏览 3 次 · 评论 0 条

Redis FUNCTION LIST查看已注册的函数库信息

FUNCTION LIST 命令用于列出当前 Redis 数据库中所有已加载的函数库及其详细信息。这在管理脚本、排查函数调用问题或查看当前服务器加载了哪些脚本逻辑时非常实用。


准备工作

确保使用的 Redis 版本为 7.0 或更高版本,因为 FUNCTION 相关命令是在该版本引入的。

启动 Redis 命令行工具:

redis-cli

基本用法:查看所有函数库

在不带任何参数的情况下执行命令,将返回所有已加载库的列表。

输入以下命令:

FUNCTION LIST

观察返回结果。返回值是一个数组,每个元素代表一个函数库。如果没有任何库加载,返回空数组。

返回数据主要包含以下字段:

字段名 含义说明
name 函数库的名称,加载时由用户指定。
engine 执行引擎,通常为 LUA
functions 该库中包含的所有函数列表。
library_code 函数库的原始代码(默认不显示)。

实战演练:加载并查看函数库

为了更直观地理解,我们将创建一个包含简单计算逻辑的函数库,并使用 FUNCTION LIST 进行查看。

1. 加载一个测试库

执行 FUNCTION LOAD 命令创建一个名为 my_math_lib 的库,其中包含一个 add 函数:

FUNCTION LOAD REPLACE my_math_lib "#!lua name=my_math_lib \n redis.register_function('add', function(keys, args) return tonumber(args[1]) + tonumber(args[2]) end)"

2. 查看已注册的库

再次执行列表命令:

FUNCTION LIST

此时返回的 JSON 格式数据(在 redis-cli --raw 模式下为纯文本)结构如下:

[
  {
    "name": "my_math_lib",
    "engine": "LUA",
    "functions": [
      {
        "name": "add",
        "description": null,
        "flags": [
          "no-writes"
        ]
      }
    ]
  }
]

分析上述结果:

  • name 显示库名为 my_math_lib
  • functions 数组中列出了 add 函数。
  • flags 显示 no-writes,表明该函数是只读的。

进阶用法:使用参数筛选与查看代码

默认情况下,为了节省网络带宽,Redis 不会返回函数库的源代码。如果需要查看代码详情或筛选特定的库,需要使用参数。

1. 查看库源代码 (WITHCODE)

执行带有 WITHCODE 选项的命令:

FUNCTION LIST WITHCODE

检查返回结果中的 library_code 字段,此时字段内容将包含加载时的完整 Lua 脚本字符串:

[
  {
    "name": "my_math_lib",
    "engine": "LUA",
    "functions": [...],
    "library_code": "#!lua name=my_math_lib \n redis.register_function('add', function(keys, args) return tonumber(args[1]) + tonumber(args[2]) end)"
  }
]

2. 筛选特定库 (LIBRARYNAME)

当服务器上存在多个函数库时,可以通过指定库名来过滤结果。

执行命令,仅查找 my_math_lib

FUNCTION LIST LIBRARYNAME my_math_lib

如果库名存在,仅返回该库的信息;如果不存在,返回空数组。


清理环境

完成测试后,删除刚才创建的库以保持环境整洁:

FUNCTION DELETE my_math_lib

验证删除结果:

FUNCTION LIST

确认返回结果为空数组,表示库已被成功移除。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文