Heim  >  Artikel  >  Datenbank  >  Was ist der Unterschied zwischen Redis' RDB und AOF?

Was ist der Unterschied zwischen Redis' RDB und AOF?

青灯夜游
青灯夜游Original
2019-06-17 14:14:5310241Durchsuche

aof und rdb sind zwei Redis-Persistenzmechanismen. Wird für die Redis-Wiederherstellung nach einem Absturz verwendet. Was ist also der Unterschied zwischen ihnen? Der folgende Artikel wird es Ihnen vorstellen und ich hoffe, dass er Ihnen hilfreich sein wird.

Was ist der Unterschied zwischen Redis' RDB und AOF?

Der Unterschied zwischen persistentem RDB und AOF

RDB-Persistenz bezieht sich auf das angegebene Zeitintervall Der Snapshot Der eigentliche Vorgang besteht darin, einen Unterprozess zu forken und den Datensatz zunächst in eine temporäre Datei zu schreiben. Nach erfolgreichem Schreiben wird die vorherige Datei ersetzt und im Binärformat gespeichert Kompression.

RDB speichert alle Schlüssel-Wert-Paare im Schlüsselraum (einschließlich Daten in abgelaufenen Wörterbüchern) und speichert sie in binärer Form, die den RDB-Dateispezifikationen entspricht und je nach Datentyp unterschiedlich verarbeitet wird.

Die AOF-Persistenz zeichnet jeden vom Server verarbeiteten Schreib- und Löschvorgang in Form eines Protokolls auf. Abfragevorgänge werden nicht aufgezeichnet, sondern im Text. Sie können die Datei öffnen, um detaillierte Vorgangsaufzeichnungen anzuzeigen.

AOF speichert dauerhaft alle vom Redis-Server ausgeführten Schreibbefehle, um den Datenbankstatus aufzuzeichnen. Die Befehle werden vor dem Schreiben im aof_buf-Puffer gespeichert.

Die Vor- und Nachteile von persistentem RDB und AOF:

Was sind die Vorteile von RDB?

1). Sobald diese Methode übernommen wird, enthält Ihre gesamte Redis-Datenbank nur noch eine Datei, was sich perfekt für die Dateisicherung eignet. Beispielsweise können Sie planen, die Daten der letzten 24 Stunden stündlich und auch die Daten der letzten 30 Tage jeden Tag zu archivieren. Durch eine solche Backup-Strategie können wir das System sehr einfach wiederherstellen, sobald ein katastrophaler Ausfall im System auftritt.

2) RDB ist eine sehr gute Wahl für die Notfallwiederherstellung. Weil wir eine einzelne Datei problemlos komprimieren und dann auf andere Speichermedien übertragen können.

3), Leistung maximieren. Wenn der Redis-Dienstprozess mit der Persistenz beginnt, muss er lediglich den untergeordneten Prozess auslagern, und dann wird der untergeordnete Prozess die Persistenzarbeit abschließen. Dadurch kann der Dienstprozess die Durchführung von E/A-Vorgängen erheblich vermeiden.

4) Im Vergleich zum AOF-Mechanismus ist die RDB-Starteffizienz höher, wenn der Datensatz groß ist.

Was sind die Nachteile von RDB?

1). Wenn Sie eine hohe Datenverfügbarkeit gewährleisten, also Datenverluste weitestgehend vermeiden möchten, ist RDB keine gute Wahl. Denn sobald das System vor der geplanten Persistenz abstürzt, gehen die Daten verloren, die nicht auf die Festplatte geschrieben werden konnten.

2). Da RDB die Datenpersistenz durch untergeordnete Fork-Prozesse unterstützt, kann es bei einem großen Datensatz dazu kommen, dass der gesamte Server für Hunderte von Millisekunden oder sogar eine Sekunde lang nicht mehr bedient wird.

Was sind die Vorteile von AOF?

1). Dieser Mechanismus kann eine höhere Datensicherheit, also Datenpersistenz, bringen. Redis bietet drei Synchronisierungsstrategien: Synchronisierung jede Sekunde, Synchronisierung bei jeder Änderung und keine Synchronisierung. Tatsächlich wird auch jede zweite Synchronisierung asynchron durchgeführt, und die Effizienz ist ebenfalls sehr hoch. Der einzige Unterschied besteht darin, dass die in dieser Sekunde geänderten Daten verloren gehen, sobald das System ausfällt. Jedes Mal, wenn eine Änderung synchronisiert wird, können wir uns das als synchrone Persistenz vorstellen, das heißt, jede auftretende Datenänderung wird sofort auf der Festplatte aufgezeichnet. Erwartungsgemäß ist dieser Ansatz am wenigsten effizient. Was keine Synchronisierung betrifft, muss ich nicht mehr sagen, ich denke, jeder kann es richtig verstehen.

2) Da dieser Mechanismus den Anhängemodus zum Schreiben von Protokolldateien verwendet, wird der vorhandene Inhalt in der Protokolldatei auch dann nicht zerstört, wenn es während des Schreibvorgangs zu einer Ausfallzeit kommt. Wenn wir bei diesem Vorgang jedoch nur die Hälfte der Daten schreiben und ein Systemabsturz auftritt, können wir vor dem nächsten Start von Redis das Tool redis-check-aof verwenden, um das Datenkonsistenzproblem zu lösen.

3). Wenn das Protokoll zu groß ist, kann Redis den Umschreibemechanismus automatisch aktivieren. Das heißt, Redis schreibt im Anhängemodus kontinuierlich geänderte Daten in die alte Festplattendatei. Gleichzeitig erstellt Redis auch eine neue Datei, um aufzuzeichnen, welche Änderungsbefehle in diesem Zeitraum ausgeführt wurden. Daher kann die Datensicherheit beim Umschreiben besser gewährleistet werden.

4) AOF enthält eine übersichtliche und leicht verständliche Protokolldatei zur Aufzeichnung aller Änderungsvorgänge. Tatsächlich können wir die Datenrekonstruktion auch über diese Datei durchführen.

Was sind die Nachteile von AOF?

1). Bei gleicher Anzahl an Datensätzen sind AOF-Dateien normalerweise größer als RDB-Dateien. RDB ist beim Wiederherstellen großer Datensätze schneller als AOF.

2). Abhängig von der Synchronisationsstrategie ist AOF in Bezug auf die Betriebseffizienz oft langsamer als RDB. Kurz gesagt, die Effizienz der Synchronisationsstrategie pro Sekunde ist relativ hoch und die Effizienz der Synchronisationsdeaktivierungsstrategie ist genauso effizient wie bei RDB.

Das Kriterium für die Wahl zwischen beiden besteht darin, zu sehen, ob das System bereit ist, im Austausch für eine höhere Cache-Konsistenz (aof) etwas Leistung zu opfern, oder ob es bereit ist, im Austausch für eine höhere Leistung bei Schreibvorgängen kein Backup zu aktivieren häufig und warten Sie auf den manuellen Vorgang. Erstellen Sie beim Speichern ein Backup (rdb). RDB hat eine letztendlich konsistentere Bedeutung. Tatsächlich ist die Produktionsumgebung jedoch eher eine Kombination aus beidem.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Redis' RDB und AOF?. 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