FCALL
语法
FCALL function numkeys [key [key ...]] [arg [arg ...]]
- 自版本
- 7.0.0
- 时间复杂度
- 取决于执行的函数。
- ACL 类别
-
@slow
,@scripting
,
调用函数。
函数使用 FUNCTION LOAD
命令加载到服务器。第一个参数是已加载函数的名称。
第二个参数是输入键名参数的数量,后跟函数访问的所有键。在 Lua 中,这些输入键的名称作为回调的第一个参数提供给函数,以表格的形式呈现。
重要:为了确保函数在独立和集群部署中的正确执行,函数访问的所有键的名称都必须作为输入键参数明确提供。函数**只应**访问作为输入参数给出的键。函数**决不应**访问具有编程生成的名称或基于存储在数据库中的数据结构内容的键。
任何额外的输入参数**不应**代表键的名称。这些是常规参数,并作为 Lua 表格传递给回调的第二个参数。
有关更多信息,请参阅 Redis 可编程性 和 Redis 函数简介 页面。
示例
以下示例将创建一个名为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"