Heim  >  Artikel  >  Datenbank  >  Einführung in verschiedene Methoden der Redis-Persistenz

Einführung in verschiedene Methoden der Redis-Persistenz

尚
nach vorne
2019-11-30 15:20:252374Durchsuche

Einführung in verschiedene Methoden der Redis-Persistenz

1. Einführung

Redis ist eine erweiterte Schlüsselwertdatenbank. Es ähnelt Memcached, die Daten können jedoch beibehalten werden und unterstützen eine Vielzahl von Datentypen. Es gibt Zeichenfolgen, verknüpfte Listen, Mengen und sortierte Mengen. Es unterstützt die Berechnung der Vereinigung, Schnittmenge und Ergänzung (Differenz) von Mengen auf der Serverseite und unterstützt außerdem eine Vielzahl von Sortierfunktionen. Daher kann Redis auch als Datenstrukturserver betrachtet werden. (Empfohlen: Redis-Video-Tutorial)

Alle Daten in Redis werden im Speicher gespeichert und dann von Zeit zu Zeit asynchron auf der Festplatte gespeichert (dies wird als „semi-persistenter Modus“ bezeichnet). Sie können jede Datenänderung auch in eine Nur-Anhänge-Datei (aof) schreiben (dies wird als „vollständiger Persistenzmodus“ bezeichnet).

Da Redis-Daten im Speicher gespeichert werden, gehen nach dem Neustart von Redis alle Daten verloren. Daher müssen Sie die Persistenzfunktion von Redis aktivieren und die Daten auf der Festplatte speichern startet neu. Anschließend können die Daten von der Festplatte wiederhergestellt werden.

Redis bietet zwei Möglichkeiten für die Persistenz, eine ist RDB-Persistenz (das Prinzip besteht darin, die Datenbankeinträge von Reids regelmäßig im Speicher in die RDB-Persistenz auf der Festplatte abzulegen) und die andere ist AOF ( Nur Datei anhängen) Persistenz (das Prinzip besteht darin, das Betriebsprotokoll von Reids angehängt in die Datei zu schreiben). Was ist also der Unterschied zwischen diesen beiden Persistenzmethoden und wie wählt man sie aus? Die meisten Informationen, die ich im Internet lese, stellen die Konfiguration und Verwendung dieser beiden Methoden vor, erklären jedoch nicht den Unterschied zwischen den beiden und den Anwendungsszenarien, in denen sie verwendet werden.

2. Der Unterschied zwischen den beiden

RDB-Persistenz bezieht sich auf das Schreiben eines Snapshots des Datensatzes im Speicher auf die Festplatte innerhalb eines bestimmten Zeitintervalls ist Fork ein untergeordneter Prozess und schreibt den Datensatz zunächst in eine temporäre Datei. Nach erfolgreichem Schreiben wird die vorherige Datei ersetzt und mithilfe der Binärkomprimierung gespeichert.

Einführung in verschiedene Methoden der Redis-Persistenz

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

Einführung in verschiedene Methoden der Redis-Persistenz

3. Vor- und Nachteile der beiden

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 auftritt.

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

3). Maximieren Sie die Leistung. 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. Es kann vorhergesagt werden, dass diese Methode die am wenigsten effiziente ist. 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 kein Backup zu aktivieren Wenn Sie „save“ manuell ausführen, führen Sie die Sicherung (rdb) erneut durch. RDB hat eine letztendlich konsistentere Bedeutung.

4. Allgemeine Konfigurationen

RDB-Persistenzkonfiguration

Redis speichert den Snapshot des Datensatzes in dump.rdb in der Datei. Darüber hinaus können wir auch die Häufigkeit der Redis-Server-Dump-Snapshots über die Konfigurationsdatei ändern. Nachdem wir die Datei 6379.conf geöffnet haben, suchen wir nach „save“ und können die folgenden Konfigurationsinformationen sehen:

save 900 1​​​​ #Wenn sich 900 Sekunden (15 Minuten) später mindestens eine Taste ändert, wird der Speicher-Snapshot gelöscht.

save 300 10 #Wenn sich nach 300 Sekunden (5 Minuten) mindestens 10 Schlüssel geändert haben, löschen Sie den Speicher-Snapshot.

save 60 10000 #Wenn sich nach 60 Sekunden (1 Minute) mindestens 10000 Schlüssel geändert haben, wird der Speicher-Snapshot gelöscht.

AOF-Persistenzkonfiguration

Es gibt drei Synchronisierungsmethoden in der Redis-Konfigurationsdatei, sie sind:

appendfsync immer #Jedes Mal gibt es Wann immer Daten Wenn eine Änderung auftritt, wird sie in die AOF-Datei geschrieben.

appendfsync everysec #Synchronize einmal pro Sekunde Diese Richtlinie ist die Standardrichtlinie von AOF.

appendfsync no         # Nie synchronisieren. Effizient, aber die Daten werden nicht gespeichert.

Weitere Redis-Kenntnisse finden Sie in der Spalte Redis-Datenbank-Tutorial.

Das obige ist der detaillierte Inhalt vonEinführung in verschiedene Methoden der Redis-Persistenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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