Lua-Skripte sollen wie MULTI
funktionieren Befehle. Eigentlich die meisten Befehle, die Sie mit MULTI
entwickeln würden Befehle von einem Redis-Client können in Lua implementiert werden. Das heißt, Sie können einige komplexe Vorgänge in einem Skript kapseln und Ihre Datenschicht führt den atomaren Schreibvorgang aus ohne sich Gedanken über Ihre Datenmodellierungsstrategie auf Redis machen zu müssen.
Außerdem finde ich sie nützlich, wenn Sie schnelle, aber komplexe Lesevorgänge ausführen möchten. Beispielsweise möchten Sie möglicherweise Objekte in Ordnung bringen. Objekte werden in einem Hash-Schlüssel gespeichert während die Reihenfolge durch einen Sorted Set Key definiert wird . Sie erhalten einen Bereich des sogenannten sortierten Satzes und Sie erhalten Objekte im Hash mit hmget
.
Der wichtigste Punkt ist, dass Lua-Skripte Dinge implementieren sollten, die so schnell wie möglich ausgeführt werden können, da Redis andere Operationen blockiert, während ein Lua-Skript ausgeführt wird. Das heißt, Sie müssen schnelle Unterbrechungen durchführen oder Ihre Redis-Gesamtleistung wird stark abnehmen.
Argumente gegen die Verwendung von Lua
Ich würde argumentieren, dass Sie sie verwenden sollten, wenn Sie sie wirklich brauchen. Normalerweise werden Clients mit höheren Programmiersprachen wie C#, Java, JavaScript, Ruby ... entwickelt und bieten eine bessere Entwicklungserfahrung:gute Debugger, IDE, Code-Vervollständigung ...
Zusammenfassung:Sie sollten sie verwenden, wenn Sie nachweisen können, dass es einen tatsächlichen Vorteil (in Bezug auf die Leistung) gibt, wenn Sie einen Teil Ihrer Domänenlogik in Redis Lua-Skripts umwandeln.