Die RDB-Methode von Redis kann keine Persistenz erreichen, die AOF-Methode jedoch schon. Wenn die Daten wichtig sind und der Verlust schwerwiegende Folgen hat, ist die RDB-Methode offensichtlich ungeeignet und die AOF-Methode sollte verwendet werden. Die AOF-Methode ähnelt in gewisser Weise dem Binlog-Protokoll von MySQL, das nur neue, geänderte und gelöschte Vorgänge aufzeichnet. Der Unterschied besteht darin, dass Redis die AOF-Datei von Zeit zu Zeit neu schreibt, um die Größe der AOF-Datei zu reduzieren.
AOF-Workflow
Hier, warum schreibt der Befehl zuerst in aof_buf, denn wenn die aof-Datei direkt geschrieben wird, ist die Leistung vollständig Hängt von der E/A-Leistung der Festplatte ab. Durch das Schreiben von aof_buf soll die Schreibleistung verbessert werden.
Konfiguration
appendonly: Ob der Aof-Persistenzmodus aktiviert werden soll, die Standardeinstellung ist „Nein“. Wenn Sie es aktivieren möchten, ändern Sie es auf „Ja“.
dir: aof Dateispeicherverzeichnis
appendfilename: aof Dateiname
appendfsync: aof Synchronisierungsmodus, es gibt drei Werte, wie folgt:
immer: Jedes Mal synchronisieren, wenn ein Befehl geschrieben wird, die Datensicherheit ist am höchsten, aber die Leistung ist schlecht
jede Sekunde: Jede Sekunde synchronisieren, die Standardmethode, hoch Leistung, sicher Die Leistung ist in Ordnung
Nein: Der Synchronisierungsvorgang wird dem Betriebssystem überlassen und die Datensicherheit ist am schlechtesten.
auto-aof-rewrite-percentage und auto-aof-rewrite-min-size Diese beiden Konfigurationen beziehen sich auf den aof-rewrite-Mechanismus. Nur diese beiden Bedingungen werden gleichzeitig erfüllt . Löst den Rewrite-Mechanismus aus.
auto-aof-rewrite-min-size bedeutet, dass die Dateigröße beim Umschreiben größer als dieser Wert sein muss. Der Standardwert ist 64 MB
auto-aof-rewrite-percentage bedeutet aktuelle Datei Die Größe muss um ein Vielfaches größer sein als die Dateigröße nach dem letzten Umschreiben.
AOF-Umschreiben
Der AOF-Umschreibmechanismus von Redis verfügt über zwei Möglichkeiten: manuelle Auslösung und automatische Auslösung. Um manuell auszulösen, geben Sie den Befehl bgrewriteof ein. Die automatische Auslösung erfüllt alle beiden oben genannten Bedingungen.
Warum kann das Umschreiben die Dateigröße verringern? Es gibt mehrere Situationen:
Abgelaufene Schlüssel und gelöschte Schlüssel werden nicht mehr aufgezeichnet
Viele einzelne Operationen können durch eine Operation abgeschlossen werden, z. B. lpush a, lpush b, was nach dem Umschreiben lpush a b ist.
Werfen wir einen Blick auf den Aof-Umschreibprozess
Führen Sie den bgrewriteof-Befehl aus
Der Hauptprozess verzweigt einen untergeordneten Prozess
Der ursprüngliche aof-Mechanismus läuft weiter und gleichzeitig werden auch neue Befehle in aof_rewrite_buf geschrieben
Der untergeordnete Prozess generiert eine neue aof-Datei
Benachrichtigen Sie den übergeordneten Prozess, dass die neue aof-Datei erfolgreich generiert wurde. Hängen Sie die Befehle in aof_rewrite_buf an die neue aof-Datei an.
Nach Abschluss der oben genannten Schritte ist das AOF-Umschreiben abgeschlossen.
Beachten Sie, dass es bei mehreren Redis-Diensten auf einem Server am besten ist, deren Umschreibezeit zu trennen, um eine übermäßige E/A- und CPU-Konkurrenz zu verhindern.
Das obige ist der detaillierte Inhalt vonAOF-Methode der Redis-Persistenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!