Lua скриптове са предназначени да работят като MULTI
команди. Всъщност повечето команди, които бихте разработили с помощта на MULTI
командите от Redis клиент могат да бъдат внедрени в Lua. Това означава, че можете да капсулирате някои сложни операции в скрипт и вашият слой данни ще изпълни атомарната операция за запис без да се притеснявате за вашата стратегия за моделиране на данни в Redis.
Също така ги намирам за полезни, когато искате да извършвате бързи, но сложни операции за четене. Например, може да искате да подредите обектите. Обектите се съхраняват в хеш ключ докато редът се определя от ключ за сортиран набор . Получавате диапазон от така наречения сортиран набор и получавате обекти в хеш с помощта на hmget
.
Най-важният момент е, че Lua скриптовете трябва да внедряват неща, които могат да се изпълняват възможно най-бързо, тъй като Redis ще блокира други операции, докато Lua скриптът се изпълнява. Това означава, че трябва да извършвате бързи прекъсвания или цялостната ви производителност на Redis ще намалее много.
Аргументи да не се използва Lua
Бих казал, че трябва да ги използвате, когато наистина имате нужда от тях. Обикновено клиентите се разработват с помощта на езици за програмиране на високо ниво като C#, Java, JavaScript, Ruby... и те осигуряват по-добро изживяване при разработката:добри програми за отстраняване на грешки, IDE, завършване на код...
Резюме:трябва да ги използвате, ако можете да докажете, че има реална полза (в производителността), ако превърнете част от логиката на вашия домейн в Redis Lua скриптове.