Heim  >  Artikel  >  Datenbank  >  Was sind die Persistenzmethoden von Redis?

Was sind die Persistenzmethoden von Redis?

WBOY
WBOYnach vorne
2023-05-27 08:02:592724Durchsuche

Warum ist Persistenz erforderlich?

Normalerweise werden alle Redis-Daten im Speicher gespeichert, wenn die Datenbank ausfällt und neu gestartet wird Im Redis-Cluster- oder Redis-Sentinel-Modus dauert die Wiederherstellung der Master-Slave-Synchronisationsdaten noch einige Zeit.

Was sind die Persistenzmethoden von Redis?

Die Persistenzfunktion kann Datenverluste durch Prozessbeendigung effektiv vermeiden. Dies kann erreicht werden, indem die zuvor gespeicherten Dateien beim nächsten Neustart verwendet werden .

Nach Verwendung der Redis-Persistenz werden die Daten auf der Festplatte gespeichert. Bei der Durchführung einer inkrementellen Synchronisierung der Datenbank ist der Zeitaufwand deutlich geringer als bei der Durchführung einer vollständigen Synchronisierung. Die Datenwiederherstellung nach Ausfällen spielt in der Produktionsumgebung eine sehr wichtige Rolle! 🎜🎜#RDB ist ein Snapshot-Datenspeicher, der regelmäßig alle Redis-Daten zum aktuellen Zeitpunkt auf der Festplatte speichert.

AOF ist eine anhangbasierte Speichermethode, die Redis-Schreibvorgänge in Echtzeit auf der Festplatte aufzeichnet.

    Was sind die Unterschiede zwischen diesen beiden Lösungen?
  • 1. RDB-Persistenz# 🎜🎜#
  • Wenn das Schreiben von Redis die RDB-Persistenzbedingung auslöst (dies kann auch durch manuelles Ausführen des Befehls dgsave ausgelöst werden), verzweigt der Redis-Hauptprozess einen untergeordneten Prozess, um einen temporären RDB-Speicher zu erstellen Benennen Sie nach dem Erstellen der Datei die temporäre Datei um, um die ursprüngliche RDB-Datei zu ersetzen. Bei der RDB-Datei handelt es sich um eine einzelne Datei, die sich sehr gut für die Notfallwiederherstellung und die Wiederherstellung von Daten eignet. Das Laden einer 1G-Snapshot-Datei in den Speicher dauert normalerweise weniger Zeit.

Nachteile:

RDB-Persistenz speichert Redis-Daten nur regelmäßig, wenn Redis abstürzt Bevor die nächste Speicherung ausgelöst wird, gehen alle Daten im Speicher verloren.

Wenn die Datenmenge groß ist, verbraucht die Gabelung des Unterprozesses außerdem viel CPU, wie im folgenden Überwachungsdiagramm RDB gezeigt Persistenz wird alle 1800er Jahre ausgelöst. Der CPU-Verbrauch von Redis wird stark ansteigen. Während des Fork-Child-Prozesses kann es zu einer sekundenlangen Blockierung kommen. #🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜##Parameter:#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜## Wenn die Speicheroption als „Leeres Speichern“ konfiguriert ist, ist die RDB-Persistenz deaktiviert. Es können mehrere Triggerbedingungen zum Einschalten der RDB-Persistenz konfiguriert werden. Beispielsweise löst 1 Schreibvorgang einen Snapshot innerhalb von 900 Sekunden aus/10 Schreibvorgänge lösen einen Snapshot innerhalb von 300 Sekunden aus , das entsprechend der eigenen Redis-Schreibsituation frei konfiguriert werden kann, um Leistung und Datensicherheit in Einklang zu bringen. Es wird empfohlen, Was sind die Persistenzmethoden von Redis?

stop-writes-on-bgsave-error zu aktivieren. Wenn in redis bgsave ein Fehler auftritt, wird die Anforderung des Clients normalerweise aufgrund unzureichender Festplatte oder abgelehnt Speicherplatz und Überwachung sind erforderlich, um die Datensicherheit zu verbessern.

    2. AOF-Persistenz
  • AOF sorgt für Persistenz, indem Befehle für Redis-Schreibvorgänge gespeichert werden verbessert, und bei ungewöhnlichen Ausfallzeiten gehen bis zu 1 Sekunde Daten verloren. Die Schreibvorgänge von Redis werden in der AOF-Datei aufgezeichnet. Das Format der Datei ist klar und leicht verständlich und kann leicht geändert werden, wodurch die Datenrekonstruktion erleichtert wird.

  • Nachteile:

Was sind die Persistenzmethoden von Redis?Mit zunehmender Redis-Schreibanzahl wird die AOF-Speicherdatei größer und größer wirken sich auf die Wiederherstellungszeit und den Speicherplatz der Datenbankdaten aus, daher müssen wir das AOF-Neuschreiben konfigurieren, um die Größe der AOF-Datei zu reduzieren. Hier können wir die standardmäßigen zwei Triggerbedingungskonfigurationen verwenden oder den BGREWRITEAOF-Befehl manuell aufrufen .

Parameter: Was sind die Persistenzmethoden von Redis?

appendonly legt fest, ob die AOF-Persistenz aktiviert werden soll.

appendfsync verfügt über drei Persistenzmodi: immer/jede Sekunde/Nein. Berücksichtigen Sie dabei die Geschwindigkeit und Sicherheit der Datenspeicherung, konfigurieren Sie sie auf „jede Sekunde“ und synchronisieren Sie die Daten jede Sekunde mit der Festplatte.

3. Vergleich der Vor- und Nachteile von RDB- und AOF-Persistenz

Beide Methoden haben ihre eigenen Vorzüge. Vergleichen wir die beiden Redis-Daten Persistenzmethoden: Was sind die Persistenzmethoden von Redis?

    4. Wählen Sie
  • Wenn Redis Daten wiederherstellt, werden die Daten zuerst wiederhergestellt Überprüfen Sie, ob die AOF-Datei vorhanden ist. Versuchen Sie, die RDB-Datei zu laden, falls sie nicht vorhanden ist.
Unter verschiedenen Umständen, je nach Datenmenge, Anwendungsanforderungen an die Datensicherheit, Budgetbeschränkungen usw., werden in tatsächlichen Produktionsumgebungen verschiedene Persistenzstrategien verwendet. Dieser Satz kann wie folgt umgeschrieben werden: Sie können sich dafür entscheiden, keine Persistenz zu verwenden, oder Sie können sich dafür entscheiden, separate RDB- oder AOF-Persistenz zu verwenden, oder Sie können RDB- und AOF-Persistenz gleichzeitig aktivieren.

PS: Die Wahl der Persistenz muss zusammen mit der Master-Slave-Strategie von Redis berücksichtigt werden, da Master-Slave-Replikation und -Persistenz auch die Funktion der Datensicherung haben und der Host-Master und der Slave-Slave die Persistenz unabhängig voneinander wählen können Lösung.

Das obige ist der detaillierte Inhalt vonWas sind die Persistenzmethoden von Redis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen