FCALL
FCALL
FCALL function numkeys [key [key ...]] [arg [arg ...]]
- Доступно с версии:
- 7.0.0
- Сложность вычислений:
- Зависит от выполняемой функции.
- Категории ACL:
-
@slow,@scripting,
Вызов функции.
Функции загружаются на сервер с помощью команды FUNCTION LOAD. Первый аргумент — имя загруженной функции.
Второй аргумент — количество аргументов-имен ключей, за которыми следуют все ключи, к которым обращается функция. В Lua эти имена входных ключей доступны функции в виде таблицы, которая является первым аргументом обратного вызова.
Важно: Для правильного выполнения функций, как в автономных, так и в кластерных развертываниях, все имена ключей, к которым функция обращается, должны быть явно указаны в качестве входных аргументов ключей. Функция должна только обращаться к ключам, имена которых указаны в качестве входных аргументов. Функции никогда не должны обращаться к ключам с динамически сгенерированными именами или на основе содержимого структур данных, хранящихся в базе данных.
Любые дополнительные входные аргументы не должны представлять имена ключей. Это обычные аргументы, которые передаются в таблице Lua как второй аргумент обратного вызова.
Для получения дополнительной информации см. страницы Redis Programmability и Введение в Redis Functions.
Примеры
В следующем примере будет создана библиотека под названием 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"
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/fcall/