Suche…


Einführung

Redis bietet eine Reihe von Mechanismen zur Erweiterung der Funktionalität der Datenbank. Ein Mechanismus besteht in der Verwendung serverseitiger LUA-Skripts, die zum Bearbeiten von Daten ausgeführt werden können. Lua-Skripte können nützlich sein, um teure Operationen auszuführen oder atomare Operationen zu implementieren, die Logik erfordern.

Befehle für das Scripting

Redis bietet sieben verschiedene Operationen für die Arbeit mit Skripten:

  • Eval-Operationen (EVAL, EVALSHA)
  • SCRIPT-Operationen (DEBUG, EXISTS, FLUSH, KILL, LOAD)

Der EVAL-Befehl wertet ein Skript aus, das dem Server als String-Argument bereitgestellt wird. Skripts können auf die angegebenen Redis-Schlüssel als Argumente für den Befehl und auf zusätzliche Zeichenfolgeparameter zugreifen, die der Benutzer an das Skript übergeben möchte.

Zum Beispiel der Befehl:

EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

bewirkt die Ausführung eines benutzerdefinierten Lua-Skripts, das einfach die angegebenen Werte zurückgibt. Bei dem Anruf handelt es sich um 2 Redis-Tasten (Taste1 und Taste2) und zwei Parameter.

Eine andere Möglichkeit, ein Lua-Skript auszuführen, besteht darin, es zuerst in die Datenbank zu laden und es dann mit einem SHA-Hash des Skripts auszuführen:

> script load "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"
"a42059b356c875f0717db19a51f6aaca9ae659ea"
> evalsha "a42059b356c875f0717db19a51f6aaca9ae659ea" 2 key1 key2 foo bar
1) "key1"
2) "key2"
3) "foo"
4) "bar"

Der Befehl zum Laden des Skripts lädt das Skript und speichert es in der Datenbank. Eine Sha-Signatur des Skripts wird zurückgegeben, damit von zukünftigen Aufrufen darauf verwiesen werden kann. Die EVALSHA-Funktion übernimmt das sha und führt das entsprechende Skript aus der Datenbank aus.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow