Redis Transaktionen

RedisRedisBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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, wodurch die Datenkonsistenz sichergestellt wird. Sie werden lernen, wie man eine Transaktion mit dem Befehl MULTI startet, Befehle in die Warteschlange stellt und die Transaktion dann entweder ausführt oder verwirft. Sie werden das Setzen von Schlüsseln (keys), das Abrufen von Werten (values) und das Erhöhen von Zählern (counters) innerhalb von Transaktionen üben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/store_string("Set String Value") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/increment_int("Increase Integer Value") subgraph Lab Skills redis/access_cli -.-> lab-552106{{"Redis Transaktionen"}} redis/store_string -.-> lab-552106{{"Redis Transaktionen"}} redis/fetch_string -.-> lab-552106{{"Redis Transaktionen"}} redis/increment_int -.-> lab-552106{{"Redis Transaktionen"}} end

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 werden. Das bedeutet, entweder alle Befehle sind erfolgreich, oder keiner, was die Datenintegrität garantiert.

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

redis-cli

Nachdem Sie sich nun in der redis-cli-Umgebung befinden, können Sie eine Transaktion beginnen. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

MULTI

Sie sollten die folgende Ausgabe sehen:

OK

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

Lassen Sie uns unseren ersten Befehl in die Warteschlange stellen. Wir setzen einen Schlüssel (key) namens mykey mit dem Wert (value) myvalue. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

SET mykey "myvalue"

Die Ausgabe sollte sein:

QUEUED

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

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

exit

Hinzufügen weiterer Befehle zur Warteschlange und Ausführen der Transaktion

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

Verbinden Sie sich erneut mit dem Redis-Server:

redis-cli

Da wir eine bestehende Transaktion haben, müssen wir den Transaktionsmodus erneut aktivieren:

MULTI

Fügen wir nun einen Befehl zur Warteschlange hinzu, um den Wert (value) von mykey abzurufen:

GET mykey

Sie sollten sehen:

QUEUED

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

SET anotherkey "anothervalue"

Die Ausgabe sollte sein:

QUEUED

Schließlich fügen wir einen INCR-Befehl zur Warteschlange hinzu, um einen Zähler (counter) namens mycounter zu erhöhen. Wenn mycounter nicht existiert, erstellt Redis ihn und initialisiert ihn mit 0, bevor er erhöht 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 ähnlich wie diese 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.

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

exit

Überprüfen der Transaktionsausführung

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

Verbinden Sie sich erneut mit dem Redis-Server:

redis-cli

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.

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

exit

Abbrechen einer Transaktion mit DISCARD

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

Verbinden Sie sich zunächst mit dem Redis-Server und starten Sie eine neue Transaktion:

redis-cli
MULTI

Fügen wir nun einige Befehle zur Warteschlange hinzu:

SET mykey "newvalue"
INCR mycounter

Sie sollten die Antwort QUEUED für jeden Befehl 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 (value) 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 das Starten von Transaktionen mit MULTI, das Hinzufügen von Befehlen zur Warteschlange (queueing commands), das Ausführen von Transaktionen mit EXEC und das Abbrechen von Transaktionen mit DISCARD geübt. Dieses Wissen ist entscheidend für die Aufrechterhaltung der Datenkonsistenz in Redis bei der Durchführung komplexer Operationen.