Lua-scripts er beregnet til at fungere som MULTI
kommandoer. Faktisk de fleste kommandoer, som du ville udvikle ved at bruge MULTI
kommandoer fra en Redis-klient kan implementeres i Lua. Det vil sige, du kan indkapsle nogle komplekse operationer i et script, og dit datalag vil udføre den atomare skriveoperation uden at bekymre dig om din datamodelleringsstrategi på Redis.
Jeg finder dem også nyttige, når du vil udføre hurtige, men komplekse læseoperationer. For eksempel vil du måske få orden på genstande. Objekter er gemt i en hash-nøgle mens rækkefølgen er defineret af en sorteret sætnøgle . Du får en række af det såkaldte sorterede sæt, og du får objekter i hash ved hjælp af hmget
.
Det vigtigste punkt er, at Lua-scripts skal implementere ting, der kan udføres så hurtigt som muligt, da Redis vil blokere andre operationer, mens et Lua-script kører. Det vil sige, du skal udføre hurtige afbrydelser ellers vil din overordnede Redis ydeevne falde meget.
Argumenter for ikke at bruge Lua
Jeg vil påstå, at du skal bruge dem, når du virkelig har brug for dem. Normalt udvikles klienter ved hjælp af programmeringssprog på højt niveau som C#, Java, JavaScript, Ruby... og de giver bedre udviklingsoplevelse:gode debuggere, IDE, kodefuldførelse...
Resumé:du bør bruge dem, hvis du kan bevise, at der er en reel fordel (i ydeevne), hvis du omdanner en del af din domænelogik til Redis Lua-scripts.