FCALL

调用函数。

语法

FCALL function numkeys [key [key ...]] [arg [arg ...]]

引入版本:7.0.0

复杂度摘要:—

调用函数。

使用 FUNCTION LOAD 命令将函数加载到服务器。第一个参数是加载函数的名称。

第二个参数是输入键名称参数的数量,后跟该函数访问的所有键。在 Lua 中,这些输入键名称可作为回调函数的第一个参数的表供函数使用。

重要: 为了确保函数的正确执行,无论是在独立部署还是集群部署中,函数访问的所有键名称都必须显式提供为输入键参数。该函数应该只访问其名称作为输入参数给出的键。函数永远不应该访问具有以编程方式生成的名称或基于数据库中存储的数据结构内容的键。

任何附加输入参数不应代表键的名称。这些是常规参数,并作为回调的第二个参数在 Lua 表中传递。

如需了解更多信息,请参阅 Redis 可编程性 和 Redis功能介绍 页面。

必需参数

function

要调用的函数的名称。

numkeys

后面的键名称的数量。键后面的参数作为常规参数传递。

可选参数

key [key ...]

键命名函数访问,通过 Lua KEYS 全局变量提供给它。其中必须正好有 numkeys 个。

arg [arg ...]

通过 Lua ARGV 变量向函数提供附加参数。

示例

以下示例将创建一个名为 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

返回值取决于执行的函数。

RESP3

返回值取决于执行的函数。

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