Empfohlenes Lernen: Redis-Video-Tutorial
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.
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.
Löschen Sie nur zuerst

Löschen Sie erst später
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
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-SchreibenWenn die Nachricht nicht wiederholt in mq verbraucht wird, wird sie an andere übergeben Verbraucher zum Verzehr (der Cache wird gelöscht)
Empfohlenes Lernen: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!