Die sogenannte Redis-Datenkonsistenz bedeutet, dass sich die Daten in Redis nach dem Ändern, Speichern oder Löschen auch entsprechend ändern sollten. Andernfalls ist es wahrscheinlich, dass der Benutzer bei einer erneuten Abfrage fehlerhafte Daten findet, die gelöscht wurden.
1. Die Notwendigkeit der Cache-Konsistenz
In Fortsetzung des vorherigen Artikels haben wir das Problem der Redis-Cache-Penetration gelöst (einfache Lösung, kann optimiert werden). erneut), aber bei der Verwendung von Redis müssen wir auch das Problem der Cache-Konsistenz berücksichtigen. Zum Beispiel: Nach dem Speichern eines neuen Benutzers sollten die Daten gleichzeitig auch in den Redis-Cache eingefügt werden, und zwar ein bestimmtes Datenelement Die Aktualisierung im Cache sollte ebenfalls synchron erfolgen. Die Standardmethode von Redis lautet: Wenn Sie sie nicht festlegen, handelt es sich bei dem in Redis gespeicherten Wert um die Daten, die Sie zuvor gespeichert haben. Die Daten werden nur synchronisiert, wenn der Server neu gestartet wird. Das ist natürlich sehr unerwünscht. Wenn das der Fall wäre, müsste der Server dann nicht ständig neu gestartet werden?
2. Geschäftsszenarien
Ich werde hier nur auf ein Szenario eingehen. Das Szenario ist: Angenommen, wir geben zu diesem Zeitpunkt Benutzerdaten ein , Es gibt Wenn sich ein neuer Benutzer registriert, werden neue Daten in die Datenbank eingefügt. Gleichzeitig müssen die Daten auch in Redis eingefügt werden, damit bei der nächsten Abfrage die neuesten Daten angezeigt werden können.
Werfen wir zunächst einen Blick darauf, ob Redis standardmäßig keine Verarbeitung durchführt. Zu diesem Zeitpunkt befinden sich nach dem Start des Systems 18 Benutzerdaten. Wir registrieren und fügen die ersten ein. Überprüfen Sie nach 19 Daten, ob in Redis 19 Daten vorhanden sind.
Nach der Registrierung habe ich nun das 19. Datenelement in die Datenbank eingefügt
Dann nutzen wir noch die Vorheriger Artikel Die erwähnte Abfrage-Cache-Methode wird verwendet, um alle Informationen abzurufen. Schauen wir uns die letzte Methode direkt an. Wir können sehen, dass die letzte Methode Runqing und nicht Nineteen ist, sodass Redis standardmäßig keine Cache-Konsistenzoperationen durchführt.
3. Cache-Konsistenzimplementierung (Option 1)
Tatsächlich ist es sehr einfach, Konsistenz zu erreichen, nachdem wir den Einfügevorgang durchgeführt haben Die Daten auslesen und gleichzeitig im Redis-Cache speichern, sodass wir bei einer erneuten Abfrage des Caches auch die neuen Daten sehen können. Der Code lautet wie folgt:
Dinge, die Sie beachten sollten: Ja: Ich rufe hier direkt findAll() auf. Tatsächlich ist es eine bessere Möglichkeit, die gerade eingefügte ID zu aktualisieren. Dies ist nur eine Demonstration, wie man es implementiert , und registrieren Sie dann neue Daten, um zu sehen, ob es funktioniert. Sie können auch im Cache sehen: Die neu eingefügte Daten-ID ist 29. Mal sehen, ob die neuen Daten im Cache vorhanden sind
4. Implementierung der Redis-Cache-Konsistenz (Option 2)
Löschen Sie die Daten in Redis regelmäßig, legen Sie beispielsweise eine geplante Aufgabe fest, und die Daten in Redis werden jede Stunde gelöscht werden, d kann garantiert werden.
Weitere Redis-Kenntnisse finden Sie in der Spalte Redis-Einführungs-Tutorial.
Das obige ist der detaillierte Inhalt vonEinführung in die Redis-Datenkonsistenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!