Budu v rozporu s přijatou odpovědí, protože přijatá odpověď je špatná.
I když nemůžete explicitně definovat pojmenované funkce, můžete zavolejte libovolný skript, který můžete volat pomocí EVALSHA . Přesněji řečeno, všechny skripty Lua, které jste explicitně definovali pomocí SCRIPT LOAD nebo implicitně prostřednictvím EVAL jsou dostupné v globálním jmenném prostoru Lua na f_<sha1 hash> (dokud/pokud nezavoláte SCRIPT FLUSH ), na které můžete kdykoli zavolat.
Problém, na který narazíte, je, že funkce jsou definovány tak, že neberou žádné argumenty a KEYS a ARGV tabulky jsou ve skutečnosti globální. Takže pokud chcete být schopni komunikovat mezi Lua skripty, musíte buď zkombinovat vaše KEYS a ARGV tabulky, nebo musíte pro komunikaci mezi vašimi funkcemi použít standardní klíčový prostor Redis.
To vše řeklo, že je to v naprostém rozporu se specifikací a je zcela možné přestat fungovat podivným způsobem, pokud se to pokusíte spustit ve scénáři clusteru Redis.