Heim  >  Artikel  >  Datenbank  >  In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.

In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.

咔咔
咔咔Original
2020-08-28 17:17:561324Durchsuche

In diesem Artikel werden die Wissenspunkte erläutert Einführung in die Persistenz RDB AOF Der Unterschied zwischen RDB und AOF Persistenzanwendungsszenarien

Vorwort

Kaka hat eine Roadmap zusammengestellt und einen Interviewleitfaden erstellt, um das Schreiben von Artikeln gemäß einer solchen Roadmap vorzubereiten, stellte jedoch später fest, dass es keine Ergänzung gab Wissenspunkte werden hinzugefügt. Ich freue mich auch darauf, dass Ihre Partner mithelfen, etwas zu leisten. Wir sehen uns im Kommentarbereich!

In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.
Bildbeschreibung hier einfügen

Demo-Umgebung

centos7.0 redis4.0 Redis-Speicherverzeichnis:/usr/local/redis redis.conf-Speicherverzeichnis:/usr/local/redis/data

1. Einführung in die Persistenz

Alle Daten in Redis werden im Speicher gespeichert. Wenn Redis abstürzt, gehen die Daten verloren. Redis-Persistenz besteht darin, Daten auf der Festplatte zu speichern. Der Arbeitsmechanismus, der permanente Speichermedien verwendet, um Datenprozesse zu speichern und die gespeicherten Daten zu einem bestimmten Zeitpunkt wiederherzustellen, wird als Persistenz bezeichnet.

Was wird im Persistenzprozess gespeichert?

Das erste Snapshot-Formular speichert Datenergebnisse und konzentriert sich auf die unten besprochenen RDB.

Der zweite Vorgang speichert den Vorgang. Die Speicherstruktur ist komplex und der Schwerpunkt liegt auf dem Datenvorgang die AOF, die weiter unten besprochen wird

2. RDB

2-1 RDB-Startmethode – Speicherbefehl

Das folgende Bild zeigt die Konfigurationsinformationen von redis.conf Ausführen Nach dem Speichern wird eine Datei dump.rdb generiert. Jetzt legen wir einen Wert fest und speichern ihn. Unter /usr/local/redis/data befindet sich eine Datei dump6379.rdb2-2 RDB-Startmodus – Konfiguration im Zusammenhang mit dem Speicherbefehl der RDB-Dateipfad

rdbcompression ja: Legen Sie fest, ob die Daten beim Speichern in der lokalen Datenbank komprimiert werden sollen. Der Standardwert ist „Ja“, mit LZF-Komprimierung.

rdbchecksum ja: Legen Sie fest, ob die RDB-Dateiformatüberprüfung durchgeführt werden soll. Dieser Verifizierungsprozess wird beim Schreiben von Dateien und beim Lesen verwendet. Der Dateiprozess wird vollständig ausgeführt keine Operation. Starten Sie es einfach neu
  • 2-4 RDB – So funktioniert der Speicherbefehl
  • Dieses Bild stammt aus einem Online-Video. Durch die Ausführung des Speicherbefehls wird der aktuelle Redis-Server blockiert, bis der aktuelle RDB-Prozess abgeschlossen ist, was zu einer langfristigen Blockierung führen kann. Dieser Befehl wird grundsätzlich aufgegeben und im Arbeitsprozess nicht mehr verwendet. Werde sie alle durch bgsave ersetzen

    2-5 RDB – So funktioniert der Befehl bgsave

    In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.Wenn bgsave in Redis ausgeführt wird, wird eine gestartete Hintergrundspeicherung direkt zurückgegeben

    Zu diesem Zeitpunkt sehen wir uns die Protokolldatei an. Der Befehl bgsave dient zum Speichern der Optimierung des Blockierungsproblems Es gibt 10 Schlüsselwerte in 300 Sekunden. Wenn eine Änderung auftritt, wird bgsave im Hintergrund ausgeführtIn diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.

    3. AOF

    3-1 AOF-Konzept

    AOF-Persistenz: Zeichnen Sie jeden Schreibbefehl in einem unabhängigen Protokoll auf, und beim Neustart wird der Befehl in der AOF-Datei erneut angezeigt -ausgeführt, um Datenwiederherstellungszwecke zu erreichen. Im Vergleich zu RDB kann es einfach als Prozess der Datengenerierung beschrieben werden. Die Hauptaufgabe von AOF besteht darin, die Echtzeitnatur der Datenpersistenz zu lösen. Dies ist derzeit die gängige Methode der Redis-Persistenz -2 AOF-Datenschreibprozess

    Führen Sie einen Redis-Befehl ausRedis' AOF aktualisiert den Puffer des Befehls und synchronisiert ihn dann gemäß einer bestimmten Strategie mit der in redis.conf konfigurierten .aof-Datei

    3-3 Drei Strategien zum Schreiben von Daten in AOF

    • Immer: Jeder Schreibvorgang wird mit der AOF-Datei synchronisiert, ohne Datenfehler und mit geringer Leistung. Die Verwendung von
    • wird nicht empfohlen
      everysec: Synchronisiert die Anweisungen im Puffer jede Sekunde mit der AOF-Datei. Dies bietet eine höhere Datengenauigkeit und eine höhere Leistung. Dies wird empfohlen und ist auch die Standardkonfiguration.Wenn das System jedoch plötzlich ausfällt, gehen die Daten innerhalb von 1 Sekunde verloren.
    • Nein: Das Betriebssystem steuert den Zyklus jeder Synchronisierung mit der AOF-Datei und der Gesamtprozess ist unkontrollierbar 3-4 AOF-Funktion aktiviert

    Konfiguration: appendonly ja|nein

    Funktion: Ob die AOF-Persistenzfunktion aktiviert werden soll, standardmäßig ist sie nicht aktiviert
    • appendonly yes|no
    • 作用:是否开启AOF持久化功能,默认为不开启状态
    • 配置:appendfsync always| everysec | noKonfiguration: Funktion: AOF persistenter Dateiname, der Standardname ist appendonly.aof
    • Starten Sie dann den Redis-Dienst neu. Sie können die Datei appendonly.aof in usr/ sehen. local/redis/data-Verzeichnis
    • Dann führen wir einen Befehl auf dem Redis-Client aus und checken ihn aus. Sie können sehen, dass die Daten in der Datei appendonly.aof gespeichert werden.

    3-5 Probleme beim Schreiben von AOF-Daten

    Nachdem wir den Namensschlüssel wiederholt festgelegt haben, können wir sehen, dass es drei Vorgänge gibt , aber diese drei Wir ändern jede Operation mit einem Schlüssel! Können wir nicht nur den letzten Schlüssel speichern? Mit dieser Frage schauen wir weiter nach unten In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.

    3-6 AOF-Umschreibung

    Da weiterhin Befehle in AOF geschrieben werden, wird die Datei immer größer, um dieses Problem zu lösen wird eingeführt Der AOF-Umschreibmechanismus wird verwendet, um die Dateigröße zu komprimieren. Beim Umschreiben von AOF-Dateien werden Daten im Redis-Prozess in Schreibbefehle umgewandelt und mit der neuen AOF-Datei synchronisiert. Einfach ausgedrückt wandelt es die Ausführungsergebnisse mehrerer Befehle für dieselben Daten in die Ausführungsdatensätze der Anweisungen um, die den Endergebnisdaten entsprechen.

    Zum Beispiel haben wir oben den Befehl „set name“ dreimal ausgeführt, aber am Ende benötigen wir nur die Daten der letzten Ausführung. Das heißt, wir benötigen nur den letzten Ausführungsdatensatz.

    3-7 AOF-Rewriting-Funktion

    • Reduzieren Sie die Festplattennutzung und verbessern Sie die Festplattenauslastung Effizienz der Datenwiederherstellung
    • 3-8 AOF-Umschreiberegeln

    Daten, bei denen während des Prozesses eine Zeitüberschreitung aufgetreten ist, werden nicht mehr in die Datei geschriebenUngültige Anweisungen ignorieren und bei der Generierung neu schreiben Direkt unter Verwendung von In-Process-Daten behält der neue AOF-Dateiwert den endgültigen Datenschreibbefehl bei. Zum Beispiel die del-Anweisung, . Legen Sie einen Schlüsselwert mehrmals fest usw.

    • Mehrere Schreibbefehle für dieselben Daten werden in einem Befehl zusammengeführt: z. B. lpush list a lpush lsit b lpush list c kann in lpush list a b cUm jedoch zu verhindern, dass der Client-Puffer aufgrund einer übermäßigen Datenmenge überläuft, führen wir für list,set,hash,zset类型每条指令最多写入64个元素

    3-9 AOF手动重写

    指令:bgrewriteaof

    nach unseren Fragen 3-5 den Befehl bgrewriteaof in der Befehlszeile aus und sehen uns dann die Datei appendonly.aof an

    Nach der Ausführung Wir werden feststellen, dass die Datei kleiner wird und nur eine Anweisung in der Datei vorhanden ist

    In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.
    Hier Bildbeschreibung einfügen

    3-10 So funktioniert das manuelle Umschreiben von AOF

    In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.
    Hier Bildbeschreibung einfügen

    3-11 AOF automatisches Umschreiben

    Konfiguration:auto-aof-rewrite-percentage 100 | auto-aof-rewrite-min-size 64mb触发对比参数:aof_current_size | aof_base_size

    Wenn aof_current_size > mit dem Neuschreiben beginnt

    Dieses Bild kommt aus dem Internet

    3-11 AOF-Workflow und Umschreibefluss = Prozess

    In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.In diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-Persistenz.

    4. Der Unterschied zwischen RDB und AOF

    • Es ist datenempfindlich Es wird empfohlen, die standardmäßige AOF-Persistenzlösung zu verwenden.

      • Die AOF-Persistenzstrategie verwendet jede Sekunde, fsync-mal pro Sekunde. • Mit dieser Strategie kann Redis immer noch eine gute Verarbeitungsleistung aufrechterhalten. Wenn ein Problem auftritt, gehen Daten innerhalb von 0-1 Sekunde verloren höchstens.
      • Hinweis: Aufgrund des großen Speichervolumens von AO-Dateien und der langsamen Wiederherstellungsgeschwindigkeit
    • Wird die RDB-Persistenzlösung verwendet? Seien Sie in der Phase gut fertig Es gibt keinen internen Verlust (diese Phase wird manuell von Entwicklern und Betriebs- und Wartungspersonal verwaltet) und die Wiederherstellungsgeschwindigkeit ist schnell. Bei der Datenwiederherstellung auf der Bühne wird normalerweise die RDB-Lösung verwendet. Hinweis: Verwenden Um eine enge Datenpersistenz durch RDB zu erreichen, ist der Rückgang bei Redis sehr gering. Umfassender Vergleich

      • Die Wahl zwischen RDB und AOF ist eigentlich ein Kompromiss, jeder hat Vor- und Nachteile
      • Wenn Sie den Datenverlust nicht innerhalb weniger Minuten ertragen können und sehr empfindlich auf Branchendaten reagieren, wählen Sie A0F
      • Wenn Sie können Datenverlusten innerhalb weniger Minuten standhalten und die Wiederherstellungsgeschwindigkeit großer Datenmengen verfolgen. Wählen Sie RDB.
      • Verwenden Sie RDB für die Notfallwiederherstellung. Redis wird als erstes A0F verwendet, um Daten wiederherzustellen und die Menge verlorener Daten zu reduzieren. Beharrlichkeit beim Lernen, Bloggen und Teilen sind die Überzeugungen, an denen Kaka seit Beginn seiner Karriere immer festgehalten hat Kakas Artikel können dem riesigen Internet Vorteile bringen. Vielen Dank für Ihre Hilfe. Bis zum nächsten Mal. Empfohlen: „
        Redis-Tutorial.“

Das obige ist der detaillierte Inhalt vonIn diesem Artikel erfahren Sie mehr über die vollständige Version der Redis-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