FUNCTION LOAD
创建库。
语法
FUNCTION LOAD [REPLACE] function-code
引入版本:7.0.0
复杂度摘要:O(1)
将库加载到 Redis。
该命令采用一个必需参数:实现该库的源代码。库负载必须以 舍邦 语句开头,该语句提供库元数据,包括要使用的引擎和库名称。
使用这个 shebang 格式:
#!<engine name> name=<library name>.
目前,<engine name> 必须为 lua。
对于 Lua 引擎,实现应使用 redis.register_function() API 声明一个或多个库入口点。加载后,您可以根据需要使用 FCALL 或 FCALL_RO 命令调用库中的函数。
更多信息请参阅Redis功能介绍。
必需参数
function-code
库的源代码。它必须以声明引擎和库名称的 Shebang 语句开头,例如 #!lua name=mylib。
可选参数
REPLACE
替换现有的同名库。
示例
以下示例将创建一个名为 mylib 的库,其中包含单个函数 myfunc,该函数返回它获取的第一个参数。
redis> FUNCTION LOAD "#!lua name=mylib \n redis.register_function('myfunc', function(keys, args) return args[1] end)"
mylib
redis> FCALL myfunc 0 hello
"hello"
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下之一:
- 批量字符串回复:加载的库名称。
- 在以下情况下使用 简单错误字符串:提供了无效的引擎名称、库的名称在没有
REPLACE修饰符的情况下已存在、库中的函数使用另一个库中已存在的名称创建(即使指定了REPLACE)、引擎创建库的函数失败(例如,由于编译错误)或库未声明任何函数。
RESP3
以下之一:
资料来源:Redis 官方 FUNCTION LOAD 文档;中文内容参考 Redis 文档许可。