Redis Transaktionen

RedisBeginner
Jetzt üben

Einführung

In diesem Lab werden Sie Redis-Transaktionen erkunden. Redis-Transaktionen ermöglichen es Ihnen, eine Gruppe von Befehlen als eine einzige, atomare Operation auszuführen und so die Datenkonsistenz zu gewährleisten. Sie lernen, wie Sie eine Transaktion mit dem Befehl MULTI starten, Befehle in die Warteschlange stellen und die Transaktion dann entweder ausführen oder verwerfen. Sie werden das Setzen von Schlüsseln, das Abrufen von Werten und das Inkrementieren von Zählern innerhalb von Transaktionen üben.

Starten einer Redis-Transaktion

In diesem Schritt lernen Sie, wie Sie eine Transaktion in Redis mit dem Befehl MULTI initiieren. Redis-Transaktionen stellen sicher, dass eine Reihe von Befehlen als eine einzige, atomare Einheit ausgeführt wird. Das bedeutet, entweder alle Befehle sind erfolgreich, oder keiner, was die Datenintegrität garantiert.

Verbinden Sie sich zuerst mit dem Redis-Server, indem Sie den Befehl redis-cli in Ihrem Terminal verwenden:

redis-cli

Nun, da Sie sich in der redis-cli-Umgebung befinden, können Sie eine Transaktion beginnen. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

MULTI

Sie sollten die folgende Ausgabe sehen:

OK

Dies bestätigt, dass Redis in den Transaktionsmodus gewechselt ist. Alle nachfolgenden Befehle, die Sie eingeben, werden in die Warteschlange gestellt und gemeinsam ausgeführt, wenn Sie den Befehl EXEC verwenden.

Fügen wir unseren ersten Befehl in die Warteschlange ein. Wir werden einen Schlüssel namens mykey mit dem Wert myvalue setzen. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

SET mykey "myvalue"

Die Ausgabe sollte lauten:

QUEUED

Dies zeigt an, dass der SET-Befehl erfolgreich zur Transaktionswarteschlange hinzugefügt wurde. Er wird erst ausgeführt, wenn wir Redis ausdrücklich dazu auffordern.

Lassen Sie die redis-cli-Umgebung für den nächsten Schritt geöffnet.

Weitere Befehle in die Warteschlange stellen und Transaktion ausführen

In diesem Schritt fügen Sie weitere Befehle zur Transaktionswarteschlange hinzu und führen dann die gesamte Transaktion mit dem Befehl EXEC aus.

Nun fügen wir einen Befehl hinzu, um den Wert von mykey abzurufen:

GET mykey

Sie sollten sehen:

QUEUED

Als Nächstes fügen wir einen weiteren Befehl hinzu, um einen anderen Schlüssel, anotherkey, mit dem Wert anothervalue zu setzen:

SET anotherkey "anothervalue"

Die Ausgabe sollte lauten:

QUEUED

Schließlich fügen wir einen INCR-Befehl hinzu, um einen Zähler namens mycounter zu inkrementieren. Wenn mycounter nicht existiert, erstellt Redis ihn und initialisiert ihn mit 0, bevor er inkrementiert wird:

INCR mycounter

Sie sollten sehen:

QUEUED

Sie haben nun mehrere Befehle innerhalb der Transaktion in die Warteschlange gestellt. Um sie alle auf einmal auszuführen, verwenden Sie den Befehl EXEC:

EXEC

Die Ausgabe sollte ungefähr so aussehen:

1) OK
2) "myvalue"
3) OK
4) (integer) 1

Lassen Sie uns die Ausgabe aufschlüsseln:

  • 1) OK: Ergebnis des Befehls SET mykey "myvalue".
  • 2) "myvalue": Ergebnis des Befehls GET mykey.
  • 3) OK: Ergebnis des Befehls SET anotherkey "anothervalue".
  • 4) (integer) 1: Ergebnis des Befehls INCR mycounter.

Alle Befehle innerhalb der Transaktion wurden atomar ausgeführt.

Lassen Sie die redis-cli-Umgebung für den nächsten Schritt geöffnet.

Überprüfung der Transaktionsausführung

In diesem Schritt überprüfen Sie, ob die Befehle in der vorherigen Transaktion korrekt ausgeführt wurden, indem Sie die Werte der von Ihnen gesetzten Schlüssel abrufen.

Um die Werte zu überprüfen, verwenden Sie den Befehl GET für jeden Schlüssel:

GET mykey
GET anotherkey
GET mycounter

Sie sollten die folgende Ausgabe sehen:

"myvalue"
"anothervalue"
"1"

Dies bestätigt, dass die Transaktion erfolgreich ausgeführt wurde und die Werte der Schlüssel wie erwartet aktualisiert wurden.

Lassen Sie die redis-cli-Umgebung für den nächsten Schritt geöffnet.

Transaktion mit DISCARD abbrechen

In diesem Schritt lernen Sie, wie Sie eine Redis-Transaktion mit dem Befehl DISCARD abbrechen. Dies ist nützlich, wenn Sie entscheiden, dass Sie die in die Warteschlange gestellten Befehle nicht ausführen möchten.

Verbinden Sie sich zuerst mit dem Redis-Server und starten Sie eine neue Transaktion:

MULTI

Nun fügen wir einige Befehle in die Warteschlange ein:

SET mykey "newvalue"
INCR mycounter

Sie sollten für jeden Befehl die Antwort QUEUED sehen.

Anstatt die Transaktion auszuführen, brechen wir sie nun ab. Verwenden Sie den Befehl DISCARD:

DISCARD

Sie sollten sehen:

OK

Dies bestätigt, dass die Transaktion abgebrochen wurde und alle in die Warteschlange gestellten Befehle verworfen wurden. Zur Überprüfung können Sie den Wert von mykey und mycounter überprüfen. Sie sollten nicht aktualisiert worden sein.

Denken Sie daran, die redis-cli-Umgebung zu verlassen, um sicherzustellen, dass der Befehl protokolliert wird:

exit

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Redis-Transaktionen verwenden, um mehrere Befehle atomar auszuführen. Sie haben geübt, Transaktionen mit MULTI zu starten, Befehle in die Warteschlange zu stellen, Transaktionen mit EXEC auszuführen und Transaktionen mit DISCARD abzubrechen. Dieses Wissen ist entscheidend für die Aufrechterhaltung der Datenkonsistenz in Redis bei komplexen Operationen.