Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Warum kann ich nach dem Neustart von Redis kein Lua-Skript in Redis ausführen?

Serverseitige Lua-Skripte werden von Redis nicht gespeichert oder gespeichert. Sie ähneln nicht den gespeicherten Prozeduren, die Sie in RDBMS finden können.

Die Clients sollen den Text des Skripts zumindest für die erste Ausführung des Skripts bereitstellen (d. h. EVAL für die erste Ausführung und EVALSHA für die nächsten Aufrufe verwenden). Alternativ können Sie auch SCRIPT LOAD und SCRIPT EXISTS verwenden, je nach Situation kann dies bequemer sein.

Dies ist für die Anwendung etwas komplexer zu handhaben, hat aber Vorteile:Es macht den Redis-Server zustandslos in Bezug auf Lua-Skripting. Der Code der Anwendung (einschließlich Lua-Skripte) wird auf der Anwendungsseite verwaltet. Sie müssen nichts auf dem Redis-Server anwenden, bevor Sie eine neue Version der Anwendung laden (selbst wenn sich die Lua-Skripte geändert haben).

Diese Eigenschaft ist im Kontext einer verteilten Infrastruktur sehr nützlich, um Anwendungslasten während des Betriebs, clientseitiges Sharding oder Redis-Cluster zu unterstützen.