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

以下之一:

  • 批量字符串回复:加载的库名称。
  • 在以下情况下使用 简单错误字符串:提供了无效的引擎名称、库的名称在没有 REPLACE 修饰符的情况下已存在、库中的函数使用另一个库中已存在的名称创建(即使指定了 REPLACE)、引擎创建库的函数失败(例如,由于编译错误)或库未声明任何函数。

资料来源:Redis 官方 FUNCTION LOAD 文档;中文内容参考 Redis 文档许可。