Heim  >  Artikel  >  Datenbank  >  Wie speichert Redis Daten?

Wie speichert Redis Daten?

(*-*)浩
(*-*)浩Original
2019-11-21 10:03:122800Durchsuche

Redis wird als In-Memory-Datenbank bezeichnet, da es alle seine Daten im Speicher speichert, sodass Redis eine hohe Geschwindigkeitsleistung aufweist. Da die Daten jedoch im Speicher gespeichert werden, gehen beim Neustart von Redis alle im Speicher gespeicherten Daten verloren . Um Daten persistent zu machen, bietet Redis zwei Methoden: die RDB-Methode und die AOF-Methode.

Wie speichert Redis Daten?

1. RDB-Modus

Die Persistenz im RDB-Modus wird durch Snapshotting abgeschlossen. Unter bestimmten Bedingungen wird Redis erstellt automatisch eine Kopie aller Daten im Speicher und speichert sie auf der Festplatte. Dieser Vorgang wird als „Snapshot“ bezeichnet. „Schnappschuss“ ähnelt dem Aufnehmen eines Fotos. Sobald Sie den Auslöser drücken, wird das eingefrorene Foto als „Schnappschuss“ bezeichnet.

Redis hat vier Snapshot-Fälle für die Daten: (Empfohlenes Lernen: Redis-Video-Tutorial )

Automatischer Snapshot gemäß den Konfigurationsregeln;


Wenn der Benutzer den SAVE- oder BGSAVE-Befehl ausführt

führt er den FLUSHALL-Befehl aus;

2. AOF-Methode

Persistenz wird durch RDB erreicht. Sobald Redis abnormal beendet wird, gehen alle nach dem letzten Snapshot geänderten Daten verloren. Um das Risiko eines Datenverlusts durch Prozessbeendigung zu verringern, kann die AOF-Methode verwendet werden, um Datenpersistenz zu erreichen.


Die AOF-Persistenz zeichnet alle vom Server verarbeiteten Schreib- und Löschvorgänge in Form eines Protokolls auf, kann jedoch in Form von Texten aufgezeichnet werden sind in der Akte der Vorgangsaufzeichnungen zu sehen.

Ihr Auftritt besteht darin, die Mängel von RDB (Dateninkonsistenz) auszugleichen. Daher wird die Form eines Protokolls verwendet, um jeden Schreibvorgang aufzuzeichnen und an die Datei anzuhängen. Wenn Redis neu gestartet wird, werden die Schreibanweisungen basierend auf dem Inhalt der Protokolldatei von vorne nach hinten ausgeführt, um die Datenwiederherstellungsarbeiten abzuschließen.

Standardmäßig aktiviert Redis die AOF-Persistenz nicht. Sie kann über den Parameter appendonly gestartet werden.

Nachdem die AOF-Persistenz aktiviert wurde, ändert sich der Redis-Befehl , Redis schreibt den Befehl in eine Datei im AOF-Format auf der Festplatte, d. h. in der Datei im .aof-Format werden einige Redis-Anweisungen gespeichert.

Bitte beachten Sie zu diesem Zeitpunkt, dass bei häufigen Datenmanipulationen in Redis der von der AOF-Formatdatei belegte Speicher immer größer wird und viele nutzlose Anweisungen vorhanden sind, z. B. die kontinuierliche Ausführung von set foo 1 , setze foo 2, setze foo 3.

Dann sind die ersten beiden Anweisungen sehr leistungsfähig. Es löscht automatisch bedeutungslose Anweisungen. Das heißt, Redis schreibt die AOF-Datei automatisch neu und kann festgelegt werden in der Konfigurationsdatei. Der Umschreibvorgang bezieht sich nur auf Speicherdaten und hat nichts mit der vorherigen AOF-Datei zu tun. Dies ähnelt RDB.

Beim Synchronisieren von Festplattendaten werden die Daten aufgrund des Caching-Mechanismus des Betriebssystems nicht tatsächlich auf die Festplatte geschrieben, sondern gelangen in den Festplatten-Cache des Systems. Standardmäßig führt das System alle 30 Sekunden einen Synchronisierungsvorgang durch. Wenn das System während dieser 30 Sekunden abnormal beendet wird, gehen die Daten im Festplattenspeicher verloren.

Redis ermöglicht die gleichzeitige Aktivierung des RDB- und AOF-Modus, was nicht nur die Datensicherheit gewährleistet, sondern auch Sicherungsvorgänge sehr einfach macht. AOF kann die Möglichkeit eines Datenverlusts effektiv reduzieren, und RDB kann eine einfache Datensicherung ermöglichen.

Das obige ist der detaillierte Inhalt vonWie speichert Redis Daten?. 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