Redis
 sql >> Datenbank >  >> NoSQL >> Redis

AOF- und RDB-Sicherungen in Redis

Bedeutet das praktisch, dass ich alle 60 Sekunden Backups erhalte?

NEIN . Redis speichert nach 60 Sekunden im Hintergrund, wenn mindestens 10000 Schlüssel geändert wurden . Andernfalls wird nicht im Hintergrund gespeichert.

Führt die Verwendung von appendonly on und appendfsync everysec zu einer Leistungsminderung? Wird es die CPU treffen? Die Schreiblast ist auf der hohen Seite.

Es hängt von vielen Dingen ab, z. Festplattenleistung (SSD VS HDD), Schreib-/Leselast (QPS), Datenmodell und so weiter. Sie müssen einen Benchmark mit Ihren eigenen Daten in Ihrer spezifischen Umgebung durchführen.

Sobald ich den Redis-Server mit diesen neuen Einstellungen neu starte, verliere ich immer noch die letzten 60 Sekunden meiner Daten, richtig?

NEIN . Wenn Sie sowohl AOF als auch RDB aktivieren, wird beim Neustart von Redis die AOF-Datei verwendet, um die Datenbank neu zu erstellen. Da Sie es auf appendfsync everysec konfigurieren , verlieren Sie nur die letzte 1 Sekunde von Daten.

Sind Neustartzeiten etwas, worüber man sich Sorgen machen muss? Meine dump.rdb-Datei ist klein; ~90 MB.

Wenn Sie AOF aktivieren und Redis neu startet, werden Protokolle in der AOF-Datei wiedergegeben, um die Datenbank neu zu erstellen. Normalerweise ist die AOF-Datei größer als die RDB-Datei und kann langsamer sein als die Wiederherstellung von der RDB-Datei. Müssen Sie sich darüber Sorgen machen? Führen Sie einen Benchmark mit Ihren eigenen Daten in Ihrer spezifischen Umgebung durch.

BEARBEITEN

WICHTIGER HINWEIS

Angenommen, Sie haben Redis bereits so eingestellt, dass es RDB-Speicherung verwendet, und viele Daten in Redis schreiben. Nach einer Weile möchten Sie die AOF-Speicherung aktivieren. ÄNDERN SIE NIEMALS DIE KONFIGURATIONSDATEI, UM AOF EINZUSCHALTEN UND REDIS NEU ZU STARTEN, ANDERNFALLS VERLIEREN SIE ALLES .

Denn sobald Sie appendonly yes eingestellt haben in redis.conf und starten Sie Redis neu, es werden Daten aus der AOF-Datei geladen, unabhängig davon, ob die Datei vorhanden ist oder nicht. Wenn die Datei nicht existiert, wird eine leere Datei erstellt und versucht, Daten aus dieser leeren Datei zu laden. Du wirst also alles verlieren.

Tatsächlich müssen Sie Redis nicht neu starten, um AOF zu aktivieren. Stattdessen können Sie config set verwenden Befehl, um es dynamisch einzuschalten:config set appendonly yes .