Kursinhalt
Einführung in Redis
Einführung in Redis
Transaktionen
Alle Befehle innerhalb der Transaktion werden gleichzeitig ausgeführt. Wenn einer der Befehle fehlschlägt, wird keiner von ihnen ausgeführt. Dies gewährleistet die Datenkonsistenz, indem teilweise oder ungültige Änderungen verhindert werden, selbst wenn Fehler auftreten.
Wie Transaktionen Verwendet Werden
Transaktionen werden häufig angewendet, wenn mehrere Operationen auf Daten zusammen durchgeführt werden müssen, wie zum Beispiel das Erhöhen eines Zählers und das Schreiben verwandter Daten zu einem anderen Schlüssel. Die Verwendung von Transaktionen stellt sicher, dass entweder alle Operationen abgeschlossen werden oder keine, wodurch die Datenintegrität gewahrt bleibt.
Kernbefehle für Transaktionen
Um eine Transaktion in Redis zu starten, verwenden Sie den MULTI
-Befehl. Dies informiert Redis, dass alle nachfolgenden Befehle Teil der Transaktion sein sollen.
Sobald Sie MULTI
ausgeben, wartet Redis die Befehle, die Sie in die Transaktion einbeziehen möchten.
In diesem Beispiel werden die Befehle SET key1 "value1"
und SET key2 "value2"
nicht sofort ausgeführt. Stattdessen werden sie der Transaktionswarteschlange hinzugefügt und zusammen ausgeführt, wenn der EXEC
-Befehl aufgerufen wird.
Ausführen einer Transaktion
Um alle Befehle in der Transaktion auszuführen, verwenden Sie den EXEC
-Befehl. Dieser führt jeden wartenden Befehl in der Transaktion aus.
Nach dem Aufruf von EXEC
werden beide SET
-Operationen ausgeführt.
Abbrechen einer Transaktion
Wenn Sie sich entscheiden, eine Transaktion vor der Ausführung abzubrechen, verwenden Sie den DISCARD
-Befehl. Dieser löscht alle Befehle in der Transaktionswarteschlange, um sicherzustellen, dass sie nicht ausgeführt werden.
Nach dem Aufruf von DISCARD
werden alle Befehle, die seit MULTI
zur Transaktion hinzugefügt wurden, verworfen und nicht ausgeführt.
Überwachung von Schlüsseln während einer Transaktion
Während einer Transaktion werden Befehle in die Warteschlange gestellt, aber nicht sofort ausgeführt. Der WATCH
-Befehl kann verwendet werden, um bestimmte Schlüssel zu überwachen. Wenn einer dieser Schlüssel vor der Ausführung der Transaktion geändert wird, wird die Transaktion abgebrochen, um Datenkonflikte zu vermeiden.
In diesem Beispiel, wenn sich der Wert von key1
ändert, bevor der EXEC
-Befehl aufgerufen wird, wird die Transaktion nicht ausgeführt. Dies gewährleistet die Datenkonsistenz, insbesondere wenn mehrere Clients versuchen, denselben Schlüssel gleichzeitig zu ändern.
1. Was passiert, wenn ein Befehl in einer Redis-Transaktion fehlschlägt?
2. Welcher Befehl sollte verwendet werden, um eine Redis-Transaktion zu starten?
Danke für Ihr Feedback!