Heim >Datenbank >Redis >So behalten Sie Redis bei

So behalten Sie Redis bei

(*-*)浩
(*-*)浩Original
2019-11-26 09:59:514313Durchsuche

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 kann Daten von der Festplatte wiederherstellen.

So behalten Sie Redis bei

Redis bietet zwei Möglichkeiten für die Persistenz , eine ist die RDB-Persistenz (das Prinzip besteht darin, Reids in der Datenbank im Speicher aufzuzeichnen. Regelmäßiger Dump zu RDB-Persistenz auf der Festplatte), die andere ist AOF-Persistenz (Append Only File) (das Prinzip besteht darin, das Reids-Vorgangsprotokoll angehängt in die Datei zu schreiben).

RDB: Bei der RDB-Persistenz wird ein Snapshot der aktuellen Prozessdaten erstellt und auf der Festplatte gespeichert. Der Prozess des Auslösens der RDB-Persistenz ist in manuelles Auslösen und automatisches Auslösen unterteilt. (Empfohlenes Lernen: Redis-Video-Tutorial)

Trigger-Mechanismus

Manuelles Auslösen entspricht den Befehlen save bzw. bgsave

Speicherbefehl: Blockieren Sie den aktuellen Redis-Server, bis der RDB-Prozess abgeschlossen ist. Bei Instanzen mit relativ großem Speicher führt dies zu einer langfristigen Blockierung und wird nicht für die Online-Verwendung empfohlen.

DB saved on disk

bgseve-Befehl: Der Redis-Prozess führt eine Fork-Operation aus, um einen untergeordneten Prozess zu erstellen. Der RDB-Persistenzprozess ist für den untergeordneten Prozess verantwortlich und endet automatisch nach Abschluss. Die Blockierung erfolgt nur während der Fork-Phase und ist im Allgemeinen nur von kurzer Dauer.

* Background saving started by pid 3151
* DB saved on disk
* RDB: 0 MB of memory used by copy-on-write
* Background saving terminated with success

Automatisch auslösen

Es wird in den folgenden Szenarien ausgelöst

1) Verwendung Speichern Sie verwandte Konfigurationen, z. B. „save m n“. Gibt an, dass bgsave automatisch ausgelöst wird, wenn der Datensatz innerhalb von m Sekunden n-mal geändert wird.

2) Wenn der Slave-Knoten einen vollständigen Kopiervorgang durchführt, führt der Master-Knoten automatisch bgsave aus, um eine RDB-Datei zu generieren und diese an den Slave-Knoten zu senden.

3) Beim Ausführen des Debug-Reload-Befehls zum Neuladen von Redis wird auch der Speichervorgang automatisch ausgelöst.

4) Standardmäßig wird bgsave beim Ausführen des Shutdown-Befehls automatisch ausgeführt, wenn die AOF-Persistenzfunktion nicht aktiviert ist.

AOF: Zeichnen Sie jeden geschriebenen Befehl in einem unabhängigen Protokoll auf und führen Sie den Befehl während des Neustarts in der AOF-Datei erneut aus, um Daten wiederherzustellen. Hauptfunktion: Lösen Sie das Problem der Echtzeitdatenpersistenz.

AOF verwenden

Um die AOF-Funktion zu aktivieren, müssen Sie die Konfiguration festlegen: appendonly ja, was standardmäßig nicht aktiviert ist. Der Dateiname wird über die appendfilename-Konfiguration festgelegt und der Standardwert ist appendonly.aof.

So behalten Sie Redis bei

1) Alle Schreibbefehle werden an aof_buf (Puffer) angehängt.

2) Der AOF-Puffer synchronisiert sich gemäß der entsprechenden Richtlinie mit der Festplatte.

3) Da AOF-Dateien immer größer werden, müssen AOF-Dateien regelmäßig neu geschrieben werden, um eine Komprimierung zu erreichen.

4) Beim Neustart des Redis-Servers kann die AOF-Datei zur Datenwiederherstellung geladen werden.

Weitere technische Artikel zum Thema Redis finden Sie in der Spalte Redis Getting Started Tutorial.

Das obige ist der detaillierte Inhalt vonSo behalten Sie Redis bei. 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