Heim >Datenbank >Redis >Was ist eine Redis-Transaktion?

Was ist eine Redis-Transaktion?

hzc
hzcOriginal
2020-06-28 14:31:082713Durchsuche

Eine Redis-Transaktion kann mehrere Befehle gleichzeitig ausführen. Es handelt sich im Wesentlichen um eine Reihe von Befehlen, die dann der Reihe nach ausgeführt werden, ohne dass andere Befehle eingefügt werden.

Was ist eine Redis-Transaktion?

1 Was ist eine Redis-Transaktion?

Sie können mehrere Befehle gleichzeitig ausführen, bei denen es sich im Wesentlichen um eine Reihe von Befehlen handelt. Alle Befehle in einer Transaktion werden serialisiert und dann der Reihe nach seriell ausgeführt, ohne in andere Befehle eingefügt zu werden

2. Was können Redis-Transaktionen tun?

In einer Warteschlange wird eine Reihe von Befehlen nacheinander und ausschließlich ausgeführt

3. Wie verwende ich den Redis-Befehl?

1. Transaktionsbezogene Befehle:

(1) DISCARD: Transaktion abbrechen und die Ausführung aller Befehle im Transaktionsblock aufgeben

(2) EXEC : Befehle im Transaktionsblock ausführen

(3) MULTI: Markieren Sie den Beginn einer Transaktion

(4) UNWATCH: Brechen Sie die Überwachung aller Schlüssel durch den WATCH-Befehl ab

(5) WATCH-Taste [Schlüssel...]: Überwachen Sie einen (oder mehrere) Schlüssel, wenn dieser (oder diese) Schlüssel vor der Ausführung der Transaktion durch andere Befehle geändert werden.

2. Problem bei der Meldung von Transaktionsfehlern:

(1) Anweisungsfehler: Beim Hinzufügen der Warteschlange wird direkt ein Fehler gemeldet. Wenn dieser Fehler auftritt, wird die gesamte Transaktion zurückgesetzt

(2) Logikfehler: Wenn Sie beispielsweise eine Zeichenfolge + 1 angeben, wird während der Ausführung ein Fehler gemeldet. Diese Art von Fehler hat keine Auswirkungen auf andere Vorgänge in der Transaktion. Nur dieser Artikel meldet einen Fehler

3. Überwachung überwachen:
(1) Optimistische Sperre:

Optimistische Sperre (Optimistic Wenn Sie die Daten abrufen, denken Sie, dass andere die Daten nicht ändern. Beim Aktualisieren wird jedoch beurteilt, ob andere die Daten aktualisiert haben Sie können Mechanismen wie „Versionsnummer“ verwenden, die optimistisch in Multi-Read-Anwendungstypen verwendet werden, was den Durchsatz verbessern kann.

 Optimistische Sperrstrategie: Die übermittelte Version muss größer als die aktuell aufgezeichnete Version sein, bevor sie aktualisiert werden kann

  (2) Pessimistische Sperre

Pessimistische Sperre (Pessimistische Sperre) ist Eine sehr pessimistische Sperre. Jedes Mal, wenn Sie die Daten abrufen, denken Sie, dass andere auf der Grundlage der Änderung arbeiten, was zu Problemen wie Überschreiben führt. Jedes Mal, wenn Sie die Daten erhalten, werden sie gesperrt. Wenn also jemand anderes die Daten abrufen möchte, werden sie blockiert. Nach Abschluss der Änderung kann die Sperre aufgehoben und verwendet werden . , wie Zeilensperren, Tabellensperren, Lesesperren und Schreibsperren, die alle die Tabelle sperren, bevor Vorgänge ausgeführt werden.

  Pessimistische Sperre gewährleistet Datensicherheit, beeinträchtigt aber die Leistung

Vier und drei Funktionen

1. Separater Isolationsvorgang:

Alle Befehle in der Transaktion werden serialisiert und der Reihe nach ausgeführt. Während der Transaktionsausführung wird diese nicht durch Befehlsanfragen anderer Clients unterbrochen.

2. Es gibt kein Konzept der Isolationsstufe:

Die Befehle in der Warteschlange werden vor der Übermittlung nicht tatsächlich ausgeführt, da vor der Übermittlung der Transaktion keine Anweisungen tatsächlich ausgeführt werden. Es gibt also kein Problem: „Abfragen innerhalb einer Transaktion müssen physische Aktualisierungen sehen, Abfragen außerhalb der Transaktion können dieses Problem jedoch nicht sehen“

 3. Atomarität ist nicht garantiert:

  Wenn Redis befindet sich in derselben Transaktion. Wenn die Ausführung eines Befehls fehlschlägt, werden nachfolgende Befehle weiterhin ohne Rollback ausgeführt.

(Es sei denn, beim Beitritt zur Warteschlange tritt ein Fehler auf, d. h. eine Ausnahme zur Kompilierungszeit ähnlich wie bei Java und eine Ausnahme zur Ausführungszeit, die während der Kompilierung zu einem Rollback führt, aufgrund von Ausnahmen während der Ausführung jedoch nicht zurückgesetzt wird )

Empfohlenes Tutorial: „Redis-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist eine Redis-Transaktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet AOF-Persistenz?Nächster Artikel:Was bedeutet AOF-Persistenz?