Skrypty Lua mają działać jak MULTI
polecenia. Właściwie większość poleceń, które stworzyłbyś za pomocą MULTI
polecenia z klienta Redis można zaimplementować w Lua. Oznacza to, że możesz zawrzeć niektóre złożone operacje w skrypcie, a warstwa danych wykona niepodzielną operację zapisu bez martwienia się o strategię modelowania danych w Redis.
Uważam je również za przydatne, gdy chcesz wykonać szybkie, ale złożone operacje odczytu. Na przykład możesz chcieć uporządkować obiekty. Obiekty są przechowywane w kluczu mieszającym podczas gdy kolejność jest określona przez klucz posortowanego zestawu . Otrzymujesz zakres tak zwanego posortowanego zestawu i otrzymujesz obiekty w hashu za pomocą hmget
.
Najważniejszym punktem jest to, że skrypty Lua powinny implementować rzeczy, które można wykonać tak szybko, jak to możliwe, ponieważ Redis zablokuje inne operacje, gdy skrypt Lua jest uruchomiony. Oznacza to, że musisz wykonywać szybkie przerwy lub ogólna wydajność Redis znacznie się zmniejszy.
Argumenty, aby nie używać Lua
Twierdzę, że powinieneś ich używać, kiedy naprawdę ich potrzebujesz. Zazwyczaj klienci są opracowywani przy użyciu języków programowania wysokiego poziomu, takich jak C#, Java, JavaScript, Ruby... i zapewniają lepsze wrażenia programistyczne:dobre debuggery, IDE, uzupełnianie kodu...
Podsumowanie:powinieneś ich używać, jeśli możesz udowodnić, że istnieje rzeczywista korzyść (pod względem wydajności), jeśli przekształcisz jakąś część logiki domeny w skrypty Redis Lua.