Heim Datenbank Redis So sperren Sie ein Redis

So sperren Sie ein Redis

Jun 28, 2019 pm 03:24 PM

So sperren Sie ein Redis

Redis-Sperrklassifizierung

Die Sperrbefehle, die von Redis verwendet werden können, sind INCR, SETNX und SET.

1. Der erste Sperrbefehl INCR

Die Idee dieser Art der Sperre besteht darin, dass der Wert des Schlüssels zuerst auf 0 initialisiert wird, wenn der Schlüssel nicht vorhanden ist. und dann wird die INCR-Operation ausgeführt.
Wenn dann andere Benutzer die INCR-Operation ausführen, um eine hinzuzufügen, bedeutet dies, dass die zurückgegebene Zahl größer als 1 ist, dass die Sperre verwendet wird.

1. Client A fordert den Server auf, den Schlüsselwert 1 zu erhalten, was bedeutet, dass die Sperre erhalten wird

2. Client B fordert den Server auch auf, den Schlüsselwert 2 zu erhalten. was bedeutet, dass die Sperrenerfassung fehlschlägt

3. Client A schließt die Ausführung des Codes ab und löscht die Sperre

4 Client B wartet eine Zeit lang und erhält den Schlüsselwert 1 Wenn Sie eine Anfrage stellen, wird angezeigt, dass die Sperre erfolgreich ist

5. Client B führt den Code aus und löscht die Sperre

$redis->incr($key);
$redis->expire($key, $ttl); //设置生成时间为1秒
Nach dem Login kopieren

2 Hinter dieser Art der Sperrung steckt, dass, wenn der Schlüssel nicht existiert, der Schlüssel auf Wert gesetzt wird

Wenn der Schlüssel bereits existiert, ergreift SETNX keine Aktion

1. Client A fordert den Server an Wenn die Einstellung erfolgreich ist, bedeutet dies, dass die Sperre erfolgreich ist.

2. Client B fordert den Server außerdem auf, den Schlüsselwert festzulegen. Wenn die Rückgabe fehlschlägt, bedeutet dies, dass die Sperre fehlgeschlagen ist

3. Client A schließt die Codeausführung ab und löscht die Sperre

4. Client B fordert nach einer gewissen Zeit an, den Schlüsselwert festzulegen, und die Einstellung ist erfolgreich

5. Client B schließt die Codeausführung ab und löscht die Sperre

$redis->setNX($key, $value);
$redis->expire($key, $ttl);
Nach dem Login kopieren

3. Die dritte Art von Sperre SET

Es gibt ein Problem mit den beiden oben genannten Methoden Stellen Sie fest, dass Sie den Schlüsselablauf festlegen müssen. Warum müssen wir also den Schlüsselablauf festlegen? Wenn die Anforderungsausführung aus irgendeinem Grund unerwartet beendet wird und die Sperre erstellt, aber nicht gelöscht wird, bleibt die Sperre immer bestehen, sodass der Cache in Zukunft nie mehr aktualisiert wird. Daher müssen wir der Sperre eine Ablaufzeit hinzufügen, um Unfälle zu verhindern.

Aber das Festlegen mit Expire ist keine atomare Operation. Daher kann die Atomizität auch durch Transaktionen gewährleistet werden, es gibt jedoch immer noch einige Probleme, weshalb der Beamte ab Version 2.6.12 die Funktion zum Festlegen der Ablaufzeit umfasst.

1. Client A fordert den Server auf, den Schlüsselwert festzulegen. Wenn die Einstellung erfolgreich ist, ist die Sperre erfolgreich.

2 die Rückgabe schlägt fehl, dann bedeutet dies, dass die Sperre fehlgeschlagen ist

3. Client A schließt die Ausführung des Codes ab und löscht die Sperre

4. Client B fordert das Festlegen des Schlüsselwerts an Nach einiger Zeit ist die Einstellung erfolgreich

5. Client B führt den Code aus und löscht die Sperre

 $redis->set($key, $value, array('nx', 'ex' => $ttl)); //ex表示秒
Nach dem Login kopieren

Weitere Informationen zu Redis finden Sie im

Tutorial zur Redis-Nutzung

Kolumne!

Das obige ist der detaillierte Inhalt vonSo sperren Sie ein Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie wähle ich einen Shard -Schlüssel in Redis -Cluster aus? Wie wähle ich einen Shard -Schlüssel in Redis -Cluster aus? Mar 17, 2025 pm 06:55 PM

In dem Artikel wird die Auswahl von Shard -Schlüssel im Redis -Cluster erläutert und ihre Auswirkungen auf Leistung, Skalierbarkeit und Datenverteilung betont. Zu den wichtigsten Problemen gehört die Gewährleistung der sogar Datenverteilung, die Ausrichtung auf den Zugriffsmustern und die Vermeidung häufiger Fehler L.

Wie implementiere ich Authentifizierung und Autorisierung in Redis? Wie implementiere ich Authentifizierung und Autorisierung in Redis? Mar 17, 2025 pm 06:57 PM

In dem Artikel wird die Implementierung der Authentifizierung und Autorisierung in Redis erläutert, wobei der Schwerpunkt auf der Aktivierung der Authentifizierung, der Verwendung von ACLs und den Best Practices zur Sicherung von Redis wird. Es deckt auch die Verwaltung von Benutzerberechtigungen und Tools ab, um die Redis -Sicherheit zu verbessern.

Wie verwende ich Redis für Jobwarteschlangen und Hintergrundverarbeitung? Wie verwende ich Redis für Jobwarteschlangen und Hintergrundverarbeitung? Mar 17, 2025 pm 06:51 PM

In dem Artikel wird die Verwendung von REDIS für Jobwarteschlangen und Hintergrundverarbeitung, Einzelheiten zur Einrichtung, Jobdefinition und Ausführung erläutert. Es deckt Best Practices wie Atomoperationen und Jobpriorisierung ab und erklärt, wie Redis die Verarbeitungseffizienz verbessert.

Wie implementiere ich Cache -Invalidierungsstrategien in Redis? Wie implementiere ich Cache -Invalidierungsstrategien in Redis? Mar 17, 2025 pm 06:46 PM

In dem Artikel werden Strategien zur Implementierung und Verwaltung von Cache-Invalidierung in REDIS erörtert, einschließlich zeitbasierter Ablauf, ereignisgesteuerter Methoden und Versioning. Es deckt auch Best Practices für Cache -Ablauf und Tools zur Überwachung und Automatik ab

Wie überwachte ich die Leistung eines Redis -Clusters? Wie überwachte ich die Leistung eines Redis -Clusters? Mar 17, 2025 pm 06:56 PM

In Artikel werden die Leistung und Gesundheit von Redis-Cluster mithilfe von Tools wie Redis CLI, Redis Insight und Drittanbieterlösungen wie Datadog und Prometheus überwacht.

Wie benutze ich Redis für Pub/Sub Messaging? Wie benutze ich Redis für Pub/Sub Messaging? Mar 17, 2025 pm 06:48 PM

In dem Artikel wird erläutert, wie Redis für Pub/Sub -Messaging, Abdeckung von Setup, Best Practices, Sicherstellung der Nachrichtenzuverlässigkeit und Überwachungsleistung.

Wie verwende ich Redis für das Sitzungsmanagement in Webanwendungen? Wie verwende ich Redis für das Sitzungsmanagement in Webanwendungen? Mar 17, 2025 pm 06:47 PM

In dem Artikel wird die Verwendung von Redis für das Sitzungsmanagement in Webanwendungen, die Einrichtung, Vorteile wie Skalierbarkeit und Leistung sowie Sicherheitsmaßnahmen erläutert.

Wie sichere ich Redis gegen gemeinsame Schwachstellen? Wie sichere ich Redis gegen gemeinsame Schwachstellen? Mar 17, 2025 pm 06:57 PM

In Artikel wird die Sicherung von Redis gegen Schwachstellen erörtert, die sich auf starke Kennwörter, Netzwerkbindung, Befehlsbehinderung, Authentifizierung, Verschlüsselung, Aktualisierungen und Überwachung konzentrieren.

See all articles