Heim >Datenbank >Redis >So stellen Sie die Atomizität in Redis sicher

So stellen Sie die Atomizität in Redis sicher

尚
Original
2019-06-29 11:26:427059Durchsuche

So stellen Sie die Atomizität in Redis sicher

Atomizität:

Atomizität ist ein Merkmal von Datenbanktransaktionen. Im Kontext von Datenbanktransaktionen bezieht sich Atomizität darauf, dass alle Vorgänge in einer Transaktion (Transaktion) entweder vollständig abgeschlossen oder nicht abgeschlossen sind und nicht irgendwo in der Mitte enden.

Für Redis bedeutet die Atomizität eines Befehls, dass eine Operation nicht unterteilt werden kann und die Operation entweder ausgeführt wird oder nicht.

Der Grund, warum Redis-Operationen atomar sind:

Der Grund, warum Redis-Operationen atomar sind, liegt darin, dass Redis Single-Threaded ist.

Die Leistung von Redis bei Parallelität:

Die API von Redis ist eine atomare Operation. Sind also mehrere Befehle auch bei Parallelität atomar?

hat den folgenden Code:

$redis= newRedis();
$redis->connect('127.0.0.1',6379);
for($i= 0;$iget('val');
$num++;
$redis->set('val',$num);
usleep(10000);
}

Verwenden Sie zwei Terminals, um das obige Programm auszuführen und festzustellen, dass das Ergebnis von val kleiner als 2000 ist. Dann können Sie erkennen, dass mehrere Redis-Befehle im Programm ausgeführt werden ist nicht atomar, dies entspricht der Leistung gewöhnlicher Datenbanken.

Wenn Sie im obigen Programm Atomizität erreichen möchten, können Sie get und set in einzelne Befehlsoperationen ändern, z. B. incr, oder Redis-Transaktionen verwenden oder Redis + Lua verwenden.

Für Redis sind die Ausführung von APIs wie get, set und eval Aufgaben, die einzeln von Redis-Threads ausgeführt werden Befehle sind atomar.

Alle von Redis selbst bereitgestellten APIs sind atomare Operationen in Redis, die eigentlich die Atomizität von Batch-Operationen sicherstellen sollen.

Weitere Informationen zu Redis finden Sie unter Redis-Nutzung Tutorial Kolumne!

Das obige ist der detaillierte Inhalt vonSo stellen Sie die Atomizität in Redis sicher. 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