Inhaltsverzeichnis
Warum wird der Cache gelöscht statt aktualisiert?
Was ist eine verzögerte doppelte Löschung?
Übernehmen Sie die Methode des Widerspruchsbeweises
Fazit
Denkpunkt 2: Warum verzögert es sich?Es ist immer noch ein Beweis durch Widerspruch. Die Situation in der folgenden Abbildung zeigt die Situation, in der der alte Cache nach dem doppelten Löschen noch vorhanden ist. Die Verzögerung dient dazu, sicherzustellen, dass die Cache-Änderungsvorgänge anderer Transaktionen abgeschlossen wurden, bevor die Datenbank geändert wird -> Cache leeren.
Redis-Video-Tutorial
Heim Datenbank Redis Ursachenanalyse: verzögertes doppeltes Löschen des Redis-Cache

Ursachenanalyse: verzögertes doppeltes Löschen des Redis-Cache

Aug 24, 2022 pm 05:34 PM
redis

Empfohlenes Lernen: Redis-Video-Tutorial

Warum wird der Cache gelöscht statt aktualisiert?

Wenn es sich um ein Update handelt und ein verteiltes Transaktionsproblem vorliegt, wird der Cache möglicherweise geändert und die Datenbankänderung schlägt möglicherweise fehl. Wenn Sie nur den Cache löschen, ruft die nächste Abfrage die Daten direkt aus der Datenbank ab, selbst wenn die Datenbankänderung fehlschlägt, und es werden keine fehlerhaften Daten angezeigt.

Was ist eine verzögerte doppelte Löschung?

Das heißt, beim Hinzufügen, Löschen oder Ändern einer Entitätsklasse muss der Cache der Entitätsklasse geleert werden. Die Löschposition liegt vor und nach der Datenbankbetriebsmethode.

Übernehmen Sie die Methode des Widerspruchsbeweises

Löschen Sie nur zuerst



Ursachenanalyse: verzögertes doppeltes Löschen des Redis-Cache

Löschen Sie erst später

Ursachenanalyse: verzögertes doppeltes Löschen des Redis-Cache

Fazit

Daher kann geschlossen werden, dass es bei beiden Vorlöschungen Probleme gibt und Nachlöschung. Daher wird die Strategie des verzögerten doppelten Löschens übernommen

Denkpunkt 2: Warum verzögert es sich?Es ist immer noch ein Beweis durch Widerspruch. Die Situation in der folgenden Abbildung zeigt die Situation, in der der alte Cache nach dem doppelten Löschen noch vorhanden ist. Die Verzögerung dient dazu, sicherzustellen, dass die Cache-Änderungsvorgänge anderer Transaktionen abgeschlossen wurden, bevor die Datenbank geändert wird -> Cache leeren.

Ursachenanalyse: verzögertes doppeltes Löschen des Redis-Cache

Ergänzung: Warum sollten wir das doppelte Löschen verzögern, um die Cache-Konsistenz sicherzustellen: Dies soll sicherstellen, dass dies während des Intervalls zwischen der Änderung der Datenbankdaten und dem Löschen der Redis-Daten gewährleistet ist Daten sind in Redis nicht vorhanden. Wenn die Datenbankdaten ohne diese Löschung geändert wurden, können alte Daten weiterhin von Redis gelesen werden, was zu Dateninkonsistenzen führt.

Der zweite Löschvorgang erfolgt nach der Änderung der Datenbankdaten. Diesmal müssen die Daten zwischen der ersten Redis-Löschung und der Änderung der Datenbankdaten erneut gelöscht werden ist eine Anfrage, dann werden die alten Daten erneut in Redis zwischengespeichert, aber die Daten in der Datenbank werden als nächstes geändert. Wenn sie dieses Mal nicht gelöscht werden, bleiben die alten Daten in der Datenbank bestehen redis. Warum müssen Sie also das Löschen von Redis um einen bestimmten Zeitraum verzögern, nachdem die Datenbank das zweite Mal geändert wurde?

Um auf das vorherige Lesen der Datenbank zu warten, warten Sie, bis die Daten in den Cache geschrieben wurden, und löschen Sie schließlich die schmutzigen Daten, sodass die Zeit gekommen ist, die Daten von der Datenbank an den Server zu senden + Cache-Schreiben

  • Aber beim verzögerten Doppellöschen ist die Verzögerungszeit sehr schwer zu bestimmen, daher wird das verzögerte Doppellöschen nicht empfohlen
  • Nach umfassenden Überlegungen gibt es nach dem Löschen des Caches auch dann, wenn die Datenbank zuerst geändert wird Es wird einen bestimmten Zeitraum geben, in dem die alten Daten gelesen werden, was normalerweise tolerierbar ist.
  • Solange der Cache rechtzeitig gelöscht wird, können andere Threads den neuesten Wert lesen.
  • Um sicherzustellen, dass der Cache gelöscht wird, können Sie gleichzeitig mit mq sicherstellen, dass der Cache gelöscht wird.

Wenn die Nachricht nicht wiederholt in mq verbraucht wird, wird sie an andere übergeben Verbraucher zum Verzehr (der Cache wird gelöscht) Ursachenanalyse: verzögertes doppeltes Löschen des Redis-Cache

Empfohlenes Lernen:

Redis-Video-Tutorial

Das obige ist der detaillierte Inhalt vonUrsachenanalyse: verzögertes doppeltes Löschen des Redis-Cache. 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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 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)

Redis startet mithilfe der angegebenen Konfigurationsdatei neu Redis startet mithilfe der angegebenen Konfigurationsdatei neu Apr 10, 2025 pm 02:42 PM

Starten Sie Redis neu, indem Sie die Konfigurationsdatei angeben: 1. Suchen Sie die Konfigurationsdatei (redis.conf normalerweise im Konfi -Unterverzeichnis); 2. Ändern Sie die erforderliche Konfiguration (z. B. das Ändern des Ports); 3.. Verwenden Sie den Befehl edis-server /path/to/redis.conf, um Redis über die Konfigurationsdatei neu zu starten (wobei /path/redis.conf der Pfad der geänderten Konfigurationsdatei ist); V.

Ist der Redis -Neustartdaten immer noch da Ist der Redis -Neustartdaten immer noch da Apr 10, 2025 pm 02:45 PM

Die Daten existieren immer noch nach dem Neustart von Redis. Redis speichert Daten im Speicher, und das Neustart löscht keine Speicherdaten. Redis liefert auch Persistenz, speichert Daten über RDB- oder AOF -Dateien auf der Festplatte auf der Festplatte und stellt sicher, dass Daten nach dem Neustart aus persistierenden Dateien wiederhergestellt werden können.

Wo ist der Redis -Neustart -Service? Wo ist der Redis -Neustart -Service? Apr 10, 2025 pm 02:36 PM

So starten Sie den Redis-Dienst in verschiedenen Betriebssystemen neu: Linux/macOS: Verwenden Sie den SystemCTL-Befehl (SystemCTL Neustart REDIS-Server) oder den Servicebefehl (Service Redis-Server-Neustart). Windows: Verwenden Sie das Tool von Services.msc (Geben Sie "Services.msc" im Dialogfeld Ausführen und drücken Sie die Eingabetaste) und klicken Sie mit der rechten Maustaste auf den Dienst "Redis" und wählen Sie "Neustart".

Was ist Redis Neustartbefehl Was ist Redis Neustartbefehl Apr 10, 2025 pm 02:39 PM

Der Befehl rEDIS-Neustart ist Redis-Server. Dieser Befehl wird verwendet, um Konfigurationsdateien zu laden, Datenstrukturen zu erstellen, REDIS -Server zu starten und auf Client -Verbindungen zu hören. Benutzer können den Befehl "Redis-Server [Optionen]" im Terminal ausführen, um den Redis-Server neu zu starten. Zu den gemeinsamen Optionen gehören der Hintergrundvorgang, das Angeben von Konfigurationsdateipfad, das Angeben von Höranschluss und das Nachladen von Snapshots nur dann, wenn Daten verloren gehen. Beachten Sie, dass das Neustart des Servers alle Client -Verbindungen trennen und vor dem Neustart die erforderlichen Daten speichern.

So reinigen Sie alle Daten mit Redis So reinigen Sie alle Daten mit Redis Apr 10, 2025 pm 05:06 PM

So reinigen Sie alle Redis-Daten: Redis 2.8 und später: Der Befehl Flushall löscht alle Schlüsselwertpaare. Redis 2.6 und früher: Verwenden Sie den Befehl Del, um die Schlüssel nach dem anderen zu löschen oder den Redis -Client zum Löschen von Methoden zu löschen. Alternative: Starten Sie den Redis -Service (Verwendung mit Vorsicht) neu oder verwenden Sie den Redis -Client (z. B. Flushall () oder Flushdb ()).

Wie unterschiedliche Fälle von Redis kommunizieren Wie unterschiedliche Fälle von Redis kommunizieren Apr 10, 2025 pm 05:15 PM

Es gibt mehrere Mechanismen für die Kommunikation zwischen Redis-Instanzen: Pub/Sub: Publish/Sub-Modus und ermöglichen eine effiziente und niedrige Latenz-Nachrichten. Cluster -Modus: Verteilte Bereitstellungsmethode, die hohe Verfügbarkeit und Fehlertoleranz bietet. Cross-Instance-Befehl: Ermöglicht, Befehle direkt an eine andere Instanz zu senden, die für vorübergehende operative oder administrative Zwecke geeignet ist.

Wird Redis klare Daten neu starten Wird Redis klare Daten neu starten Apr 10, 2025 pm 02:48 PM

Redis Neustart löscht die Daten nicht, da Redis die Daten im Speicher speichert und die Daten aus persistentem Speicher wie RDB oder AOF lädt. Es gibt zwei Arten von anhaltendem Speicher: RDB und AOF, die sicherstellen, dass Daten nach dem Neustart nicht verloren gehen. Darüber hinaus verfügt Redis über andere Schutzmaßnahmen wie Snapshot -Optionen, Replikation und Sentinels, um den Datenverlust zu verhindern. In seltenen Fällen, wie z. B. anhaltende Speicherkorruption oder versehentliche Beendigung, kann dies jedoch zu Datenverlust führen.

So sehen Sie die Speicherverwendung aller Schlüssel in einer Datenbank in Redis an So sehen Sie die Speicherverwendung aller Schlüssel in einer Datenbank in Redis an Apr 10, 2025 pm 03:03 PM

Redis bietet zwei Befehle, um die Speicherverwendung aller Schlüssel in der Datenbank anzuzeigen: Speicherverwendung Allkeys: Gibt die Speicherverwendung aller Schlüssel im Format zurück: "Schlüssel" (Typ).

See all articles