Heim  >  Artikel  >  Datenbank  >  Es gibt mehrere Möglichkeiten, Redis beizubehalten

Es gibt mehrere Möglichkeiten, Redis beizubehalten

(*-*)浩
(*-*)浩Original
2019-06-03 14:57:2010421Durchsuche

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.

Es gibt mehrere Möglichkeiten, Redis beizubehalten

Alle Daten in Redis werden im Speicher gespeichert und dann von Zeit zu Zeit asynchron auf der Festplatte gespeichert (dies wird auch als „semi-persistenter Modus“ bezeichnet). in eine Nur-Anhänge-Datei (aof) geschrieben werden (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 Methoden für die Persistenz: eine ist die 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 als Anhang in die Datei zu schreiben).

Was sind also die Unterschiede zwischen diesen beiden Persistenzmethoden und wie wählt man sie aus?

RDB-Persistenz bezieht sich auf das Schreiben eines Snapshots des Datensatzes im Speicher auf die Festplatte innerhalb eines bestimmten Zeitintervalls. Der eigentliche Vorgang besteht darin, einen untergeordneten Prozess zu forken und den Datensatz zunächst in eine temporäre Datei zu schreiben , und schreiben Nach erfolgreichem Import wird die vorherige Datei ersetzt und mit binärer Komprimierung gespeichert.

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.

Die Vor- und Nachteile von 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 im System 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, bei Schreibvorgängen keine Sicherung zu ermöglichen werden häufig im Austausch für eine höhere Cache-Konsistenz durchgeführt. Warten Sie, bis Sie „save“ manuell ausführen, bevor Sie eine Sicherung durchführen (rdb). RDB hat eine letztendlich konsistentere Bedeutung.

Das obige ist der detaillierte Inhalt vonEs gibt mehrere Möglichkeiten, Redis beizubehalten. 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
Vorheriger Artikel:KeinerNächster Artikel:redis集群原理