Spec-Zone.ru › Redis

ФУНКЦИЯ

FUNCTION LOAD
Синтаксис
FUNCTION LOAD [REPLACE] function-code
Доступно с версии:
7.0.0
Сложность вычисления:
O(1) (учитывая, что время компиляции не является лишним)
Категории ACL:
@write, @slow, @scripting,

Загрузить библиотеку в Redis.

Команда получает единственный обязательный параметр — исходный код, реализующий библиотеку. Загрузка библиотеки должна начинаться со строки Shebang, которая предоставляет метаданные о библиотеке (например, используемый движок и имя библиотеки). Формат Shebang: #!<engine name> name=<library name>. В настоящее время имя движка должно быть lua.

Для движка Lua реализация должна объявлять одну или несколько точек входа в библиотеку с помощью API redis.register_function(). После загрузки вы можете вызывать функции в библиотеке с помощью команды FCALL (или FCALL_RO, если применимо).

При попытке загрузить библиотеку с именем, которое уже существует, сервер Redis возвращает ошибку. Модификатор REPLACE изменяет это поведение и перезаписывает существующую библиотеку новым содержимым.

Команда вернет ошибку в следующих случаях:

  • Было предоставлено неверное имя_движка.
  • Имя библиотеки уже существует без модификатора REPLACE.
  • Функция в библиотеке создана с именем, которое уже существует в другой библиотеке (даже когда указан REPLACE).
  • Движок завершился ошибкой при создании функций библиотеки (например, из-за ошибки компиляции).
  • Библиотека не объявила ни одной функции.

Для получения дополнительной информации обратитесь к Введению в функции Redis.

Возвращаемое значение

@string — имя загруженной библиотеки

Примеры

Следующий пример создаст библиотеку с именем 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/function-load/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API