Heim  >  Artikel  >  Datenbank  >  Was bedeutet AOF-Persistenz?

Was bedeutet AOF-Persistenz?

hzc
hzcOriginal
2020-06-28 14:25:443115Durchsuche

AOF-Persistenz bedeutet, jeden Schreibbefehl in einem unabhängigen Protokoll aufzuzeichnen und den Befehl beim Neustart von Redis erneut auszuführen, um den Zweck der Datenwiederherstellung zu erreichen. Die Hauptaufgabe von AOF besteht darin, das Problem zu lösen Datenpersistenz in Echtzeit.

Was bedeutet AOF-Persistenz?

Redis ist eine In-Memory-Datenbank, die Daten im Speicher speichert und deren Lese- und Schreibeffizienz viel schneller ist als bei herkömmlichen Datenbanken, die Daten auf der Festplatte speichern. Sobald der Prozess jedoch beendet wird, gehen die Redis-Daten verloren.

Um dieses Problem zu lösen, bietet Redis zwei Persistenzlösungen, RDB und AOF, um Daten im Speicher auf der Festplatte zu speichern und so Datenverluste zu vermeiden. Die Einführung von RDB erfolgt in diesem Artikel „Detaillierte Erläuterung der Redis-RDB-Persistenz“. Heute werfen wir einen Blick auf die Prinzipien im Zusammenhang mit AOF.

Die AOF-Persistenz (Append Only File) zeichnet jeden Schreibbefehl in einem unabhängigen Protokoll auf und führt die Befehle in der AOF-Datei erneut aus, wenn Redis neu startet, um Daten wiederherzustellen. Die Hauptfunktion von AOF besteht darin, das Echtzeitproblem der Datenpersistenz zu lösen.

RDB und AOF

antirez hat die jeweiligen Vor- und Nachteile von RDB und AOF im Artikel „Redis Persistence Decryption“ beschrieben:

  • RDB ist eine kompakte, komprimierte Binärdatei, die die Redis-Datensicherung zu einem bestimmten Zeitpunkt darstellt. Sehr gut geeignet für Backup, vollständige Kopie und andere Szenarien. Führen Sie beispielsweise alle 6 Stunden ein bgsave-Backup durch und kopieren Sie die RDB-Datei zur Notfallwiederherstellung auf den Remote-Computer oder das Dateisystem.

  • Redis lädt RDB und stellt Daten viel schneller wieder her als die AOF-Methode

  • Daten der RDB-Methode können nicht in Echtzeit gespeichert werden, und die AOF-Methode kann dies erledigt werden.

Was sind die Schritte zur AOF-Persistenz?

1. Schritte zum Anhängen von Befehlen
Zuerst legt der Server den Schreibvorgangsbefehl für die Datenbank in den AOF-Puffer und überprüft mithilfe einer periodischen Funktion, ob der Inhalt im Puffer in den geschrieben werden muss AOF-Datei (Es gibt im Allgemeinen drei Strategien: immer, jede Sekunde, nein). Diese drei Strategien stellen ein Gleichgewicht zwischen Sicherheit und Effizienz dar.

2. Datenwiederherstellung
Stellen Sie Daten wieder her, indem Sie einen Pseudo-Client ohne Netzwerkverbindung erstellen und die Befehle in AOF nacheinander ausführen.

3. AOF-Neuschreiben
Da AOF Schreiboperationsbefehle aufzeichnet, führt dies zu Dateiredundanz. Solange der aktuelle Status der Datenbank neu gelesen wird, kann AOF optimiert werden.
Der spezifische Prozess ist wie folgt:
Erstellen Sie zuerst einen untergeordneten Prozess (warum nicht Threads verwenden? Denn Threads verursachen Sperren, was zu einer geringen Effizienz führt. Und die Verwendung von untergeordneten Prozessen blockiert den übergeordneten Prozess nicht)
Dann Der übergeordnete Prozess erstellt einen AOF-Rewrite-Puffer, der zum Aufzeichnen von Schreibbefehlen verwendet wird, die während des AOF-Rewrite ausgeführt werden.
Ein Schreibbefehl wird sowohl an den AOF-Puffer als auch an den AOF-Rewrite-Puffer gesendet.
Wenn das Umschreiben abgeschlossen ist, sendet der untergeordnete Prozess ein Signal an den übergeordneten Prozess, und der übergeordnete Prozess hängt den Inhalt des AOF-Umschreibpuffers an die neue AOF-Datei an und ersetzt atomar die ursprüngliche AOF-Datei.

Empfohlenes Tutorial: „Redis-Tutorial

Das obige ist der detaillierte Inhalt vonWas bedeutet AOF-Persistenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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