Как в lua-скрипте для Redis объявлять функции

Начнём с того, что объявить в lua-скрипте функцию достаточно просто:

function somefunc(key, value)
    -- something
end

Однако при запуска такого кода в контексте Redis вы получите сообщение об ошибке:

[Error: ERR Error running script (call to .... @enable_strict_lua:7: user_script:1: Script attempted to create global variable 'add']

Как обойти данную ситуацию? Достаточно просто, нужно всего лишь перед объявлением функции добавить local:

local function somefunc(key, value)
    -- something
end

Также можно воспользоваться ещё одним способом: объявить функцию как элемент таблицы:

local obj = {}
function obj.name(name)
    return "my name is ".. name
end