FCALL
语法
FCALL function numkeys [key [key ...]] [arg [arg ...]]
- 可用版本
- Redis 开源版 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"