- 用法
-
FCALL function numkeys [ key ] [ [ key ] ... ] [ arg ] [ [ arg ] ... ]
- 复杂度
- 取决于执行的函数。
- 自
- 7.0.0
- ACL 类别
- @scripting, @slow
调用函数。
函数通过 FUNCTION LOAD
命令加载到服务器。第一个参数是已加载函数的名称。
第二个参数是输入键名参数的数量,后面是函数访问的所有键。在 Lua 中,这些输入键名作为回调的第一个参数,以表的形式提供给函数。
重要提示: 为了确保函数在独立部署和集群部署中都能正确执行,函数访问的所有键名都必须作为输入键参数明确提供。函数只能访问作为输入参数提供的键名。函数绝不应访问通过程序生成或根据数据库中存储的数据结构内容生成的键。
任何额外的输入参数不应表示键名。这些是常规参数,并作为回调的第二个参数,以 Lua 表的形式传递。
欲了解更多信息,请参阅 Valkey 可编程性 和 Valkey 函数简介 页面。
示例
以下示例将创建一个名为 mylib
的库,其中包含一个函数 myfunc
,它返回其获得的第一个参数。
127.0.0.1:6379> FUNCTION LOAD "#!lua name=mylib \n server.register_function('myfunc', function(keys, args) return args[1] end)"
"mylib"
127.0.0.1:6379> FCALL myfunc 0 hello
"hello"
RESP2/RESP3 回复
返回值取决于执行的函数。