Heim >Datenbank >Redis >Was nützen Redis-Transaktionen?

Was nützen Redis-Transaktionen?

藏色散人
藏色散人Original
2019-06-19 11:17:032919Durchsuche

Was nützen Redis-Transaktionen?

Redis-Transaktion

MULTI, EXEC, DISCARD und WATCH sind die Grundlage der Redis-Transaktion. Sie werden zum expliziten Starten und Steuern einer Transaktion verwendet und ermöglichen die Ausführung einer Reihe von Befehlen in einem Schritt. Und bietet zwei wichtige Garantien:

● Alle Befehle in der Transaktion werden serialisiert und der Reihe nach ausgeführt. Während der Ausführung einer Redis-Transaktion erfolgt keine Anfrage eines anderen Clients. Dadurch wird sichergestellt, dass die Befehlswarteschlange als einzelne atomare Operation ausgeführt wird.

● Alle Befehle in der Warteschlange werden entweder verarbeitet oder ignoriert. Der EXEC-Befehl löst daher die Ausführung aller Befehle in der Transaktion aus,

● Wenn dies vor dem Aufruf des MULTI-Befehls geschieht, werden keine Befehle ausgeführt

● Wenn vorher der EXEC-Befehl aufgerufen wird, werden alle Befehle ausgeführt.

Gleichzeitig verwendet Redis AOF (Append-Only File), um Transaktionen mithilfe eines zusätzlichen Schreibvorgangs auf die Festplatte zu schreiben. Wenn eine Ausfallzeit oder ein Prozessabsturz auftritt, können Sie das Redis-Check-Aof-Tool verwenden, um die Nur-Anhänge-Datei zu reparieren, sodass der Dienst normal starten und einige Vorgänge wieder aufnehmen kann. (Empfohlen: „Redis Video Tutorial“)

Verwendung

Verwenden Sie den MULTI-Befehl, um die Redis-Transaktion explizit zu starten. Dieser Befehl antwortet immer mit OK. Zu diesem Zeitpunkt kann der Benutzer mehrere Befehle ausgeben, und Redis führt diese Befehle nicht aus, sondern stellt sie in die Warteschlange. Nach dem Aufruf von EXEC werden alle Befehle ausgeführt. Durch den Aufruf von DISCARD kann die Befehlswarteschlange in der Transaktion geleert und die Transaktion beendet werden.

Das folgende Beispiel erhöht atomar die Tasten foo und bar.

>MULTI
OK
>INCR foo
QUEUED
>INCR bar
QUEUED
>EXEC
1)(整数)1
2)(整数)1

Wie aus der obigen Befehlsausführung ersichtlich ist, gibt EXEC ein Array zurück, in dem jedes Element das Rückgabeergebnis eines einzelnen Befehls in der Transaktion ist und die Reihenfolge mit der Reihenfolge des Befehls übereinstimmt ausgestellt wurde.

Wenn eine Redis-Verbindung im Kontext einer MULTI-Anfrage steht, werden alle Befehle mit der Zeichenfolge QUEUED (aus Sicht des Redis-Protokolls als Statusantwort gesendet) beantwortet und in der Befehlswarteschlange eingereiht. Nur wenn EXEC aufgerufen wird, werden die in der Warteschlange befindlichen Befehle ausgeführt und das tatsächliche Ergebnis wird zu diesem Zeitpunkt zurückgegeben.

Das obige ist der detaillierte Inhalt vonWas nützen Redis-Transaktionen?. 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:Wo wird Redis verwendet?Nächster Artikel:Wo wird Redis verwendet?