Redis Persistenzmanagement

RedisBeginner
Jetzt üben

Einführung

In diesem Lab werden wir die Persistenzverwaltung von Redis untersuchen und uns darauf konzentrieren, wie Datenhaltbarkeit konfiguriert und verwaltet wird. Wir beginnen mit der Konfiguration der Redis Database (RDB)-Persistenz mithilfe des CONFIG SET-Befehls, der es uns ermöglicht, Point-in-Time-Snapshots unserer Redis-Daten zu erstellen. Wir werden auch die Aktivierung der Append-Only File (AOF)-Persistenz, das manuelle Speichern von Daten, die Überprüfung der letzten Speicherzeit und das Neuschreiben der AOF-Datei zur Optimierung ihrer Größe behandeln.

RDB-Persistenz konfigurieren

In diesem Schritt konfigurieren wir die Redis Database (RDB)-Persistenz. RDB erstellt Point-in-Time-Snapshots Ihres Datensatzes in festgelegten Intervallen. Wir verwenden den Befehl CONFIG SET, um die Redis-Serverkonfiguration dynamisch zu ändern, ohne den Server neu starten zu müssen.

Verbinden Sie sich zuerst mit dem Redis-Server über die Redis-Befehlszeilenschnittstelle (redis-cli). Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

redis-cli

Sie sehen die redis-cli-Eingabeaufforderung, die wie 127.0.0.1:6379> aussieht.

Überprüfen wir die aktuelle RDB-Speicherkonfiguration mit dem Befehl CONFIG GET.

CONFIG GET save

Die Standardausgabe zeigt mehrere Speicherpunkte:

1) "save"
2) "900 1 300 10 60 10000"

Das bedeutet, Redis speichert die Datenbank, wenn in 900 Sekunden mindestens 1 Schlüssel geändert wurde, ODER in 300 Sekunden mindestens 10 Schlüssel geändert wurden, ODER in 60 Sekunden mindestens 10000 Schlüssel geändert wurden.

Ändern wir dies nun auf einen einzelnen Speicherpunkt: Speichern Sie die Datenbank, wenn in 60 Sekunden mindestens 1 Schlüssel geändert wurde.

CONFIG SET save "60 1"

Sie sollten OK als Ausgabe sehen, was die Änderung bestätigt.

OK

Überprüfen Sie, ob die Konfiguration aktualisiert wurde:

CONFIG GET save

Die Ausgabe sollte nun unsere neue Einstellung widerspiegeln:

1) "save"
2) "60 1"

Als Nächstes konfigurieren wir das Verzeichnis, in dem Redis seine RDB-Datei (dump.rdb) speichert. Beenden Sie zuerst die redis-cli, um einige Shell-Befehle auszuführen.

exit

Erstellen Sie nun ein neues Verzeichnis und legen Sie die richtigen Berechtigungen fest. Der Redis-Server läuft als Benutzer redis, daher benötigt er die Eigentümerschaft des Verzeichnisses, um Dateien schreiben zu können.

sudo mkdir -p /var/lib/redis/labex_data
sudo chown redis:redis /var/lib/redis/labex_data

Verbinden Sie sich wieder mit Redis und setzen Sie die dir-Konfiguration auf den neuen Pfad.

redis-cli
CONFIG SET dir /var/lib/redis/labex_data

Sie sollten OK sehen. Überprüfen Sie die Änderung:

CONFIG GET dir

Die Ausgabe bestätigt das neue Verzeichnis:

1) "dir"
2) "/var/lib/redis/labex_data"

Nun speichert Redis seine Persistenzdateien im Verzeichnis /var/lib/redis/labex_data.

Um sicherzustellen, dass Ihre Fortschritte korrekt gespeichert und verifiziert werden, beenden Sie bitte die redis-cli-Sitzung.

exit

AOF-Persistenz aktivieren

In diesem Schritt aktivieren wir die Append-Only File (AOF)-Persistenz. AOF protokolliert jede vom Server empfangene Schreiboperation. Dies bietet eine bessere Haltbarkeit als RDB, da Daten häufiger in das Protokoll geschrieben werden.

Verbinden Sie sich zuerst mit dem Redis-Server:

redis-cli

Überprüfen Sie mit dem Befehl CONFIG GET, ob AOF derzeit aktiviert ist.

CONFIG GET appendonly

Standardmäßig ist es deaktiviert:

1) "appendonly"
2) "no"

Um AOF zu aktivieren, setzen Sie den Parameter appendonly auf yes.

CONFIG SET appendonly yes

Sie sehen OK als Ausgabe. Überprüfen Sie nun die Änderung:

CONFIG GET appendonly

Die Ausgabe sollte bestätigen, dass AOF nun aktiviert ist:

1) "appendonly"
2) "yes"

Wenn AOF aktiviert ist, protokolliert Redis alle Schreibbefehle in die Datei appendonly.aof, die sich in dem Verzeichnis befindet, das wir im vorherigen Schritt konfiguriert haben (/var/lib/redis/labex_data).

Fügen wir einige Daten hinzu, um AOF in Aktion zu sehen. Dieser SET-Befehl wird in die AOF-Datei geschrieben.

SET mykey "myvalue"

Sie sollten die folgende Ausgabe sehen:

OK

Um sicherzustellen, dass Ihre Fortschritte korrekt gespeichert und verifiziert werden, beenden Sie bitte die redis-cli-Sitzung.

exit

Daten manuell mit SAVE speichern

In diesem Schritt lernen Sie, wie Sie mit dem Befehl SAVE manuell einen RDB-Snapshot auslösen. Während Redis Daten basierend auf Ihrer Konfiguration automatisch speichert, ist ein manuelles Speichern nützlich, um Backups zu erstellen oder sicherzustellen, dass Daten vor einem geplanten Wartungsereignis persistent gespeichert werden.

Verbinden Sie sich zuerst mit dem Redis-Server:

redis-cli

Fügen wir einige neue Daten hinzu, damit wir etwas zum Speichern haben.

SET anotherkey "anothervalue"

Sie sollten die folgende Ausgabe sehen:

OK

Lösen Sie nun manuell ein Speichern auf die Festplatte aus, indem Sie den Befehl SAVE verwenden.

SAVE

Der Befehl SAVE führt ein synchrones Speichern durch, was bedeutet, dass er alle anderen Client-Anfragen blockiert, bis der Speicher-Vorgang abgeschlossen ist. Bei großen Datenbanken kann dies zu einer spürbaren Pause führen.

Sobald das Speichern abgeschlossen ist, sehen Sie OK:

OK

Dies bestätigt, dass Redis den aktuellen Datensatz erfolgreich in die Datei dump.rdb im Verzeichnis /var/lib/redis/labex_data geschrieben hat. Für Produktionsumgebungen wird im Allgemeinen der nicht-blockierende Befehl BGSAVE bevorzugt.

Um sicherzustellen, dass Ihre Fortschritte korrekt gespeichert und verifiziert werden, beenden Sie bitte die redis-cli-Sitzung.

exit

Letzte Speicherzeit mit LASTSAVE prüfen

In diesem Schritt verwenden wir den Befehl LASTSAVE, um den Zeitstempel des letzten erfolgreichen RDB-Speichervorgangs zu überprüfen. Dieser Befehl ist nützlich für die Überwachung und Verifizierung, dass Ihre Persistenzstrategie wie erwartet funktioniert.

Verbinden Sie sich zuerst mit dem Redis-Server:

redis-cli

Um den Zeitstempel des letzten erfolgreichen Speichervorgangs zu erhalten, führen Sie den Befehl LASTSAVE aus.

LASTSAVE

Der Befehl gibt einen Unix-Zeitstempel zurück, der die Anzahl der Sekunden seit dem 1. Januar 1970 (UTC) darstellt. Die Ausgabe wird ungefähr so aussehen, wobei die Zahl bei Ihnen anders sein wird:

(integer) 1678886400

Dieser Zeitstempel entspricht dem Zeitpunkt, zu dem Sie den Befehl SAVE im vorherigen Schritt ausgeführt haben.

Sehen wir uns an, wie sich der Zeitstempel aktualisiert. Wir fügen weitere Daten hinzu, führen einen weiteren manuellen Speichervorgang durch und überprüfen dann erneut die letzte Speicherzeit.

SET anotherkey2 "anothervalue2"
SAVE
LASTSAVE

Nachdem Sie diese Befehle ausgeführt haben, sehen Sie einen neuen, aktuelleren Zeitstempel, der vom zweiten LASTSAVE-Befehl zurückgegeben wird, was bestätigt, dass ein neuer Snapshot erstellt wurde.

Um sicherzustellen, dass Ihre Fortschritte korrekt gespeichert und verifiziert werden, beenden Sie bitte die redis-cli-Sitzung.

exit

AOF mit BGREWRITEAOF neu schreiben

In diesem Schritt lernen wir, wie Sie die AOF-Datei mit dem Befehl BGREWRITEAOF neu schreiben. Während Ihre Anwendung läuft, wächst die AOF-Datei an. Sie kann viele redundante Befehle enthalten (z. B. das mehrmalige Erhöhen eines Zählers). Das Neuerstellen der AOF-Datei erstellt eine neue, kompakte Datei mit dem minimalen Satz von Befehlen, die zur Rekonstruktion des aktuellen Datensatzes benötigt werden, was die Startzeiten von Redis erheblich verbessern kann.

Verbinden Sie sich zuerst mit dem Redis-Server:

redis-cli

Um die Auswirkung des Neuerstellens zu demonstrieren, führen wir einige Operationen durch, die unnötige Befehle in das AOF-Protokoll aufnehmen.

SET key1 "value1"
SET key2 "value2"
DEL key1
SET key3 "value3"

Die AOF-Datei enthält nun vier Befehle. Um den aktuellen Zustand wiederherzustellen, müssen wir jedoch nur key2 und key3 setzen. Die Befehle im Zusammenhang mit key1 sind redundant.

Lösen Sie nun ein Hintergrund-Neuschreiben der AOF-Datei aus.

BGREWRITEAOF

Sie sehen eine Bestätigungsnachricht, dass der Prozess gestartet wurde:

Background append only file rewriting started

Redis führt diese Operation im Hintergrund aus, sodass sie keine Client-Anfragen blockiert. Es erstellt eine temporäre AOF-Datei, schreibt den aktuellen Datensatz auf effiziente Weise hinein und ersetzt dann atomar die alte AOF-Datei durch die neue.

Nach Abschluss des Neuerstellens wird die Datei appendonly.aof kleiner sein und nur die Befehle zum Setzen von key2 und key3 enthalten.

Um sicherzustellen, dass Ihre Fortschritte korrekt gespeichert und verifiziert werden, beenden Sie bitte die redis-cli-Sitzung.

exit

Zusammenfassung

In diesem Lab haben Sie die Grundlagen des Redis-Persistenzmanagements kennengelernt. Sie haben die Konfiguration sowohl der RDB- als auch der AOF-Persistenzmechanismen mit CONFIG SET geübt. Sie haben auch gelernt, wie Sie manuelle Datensicherungen mit dem Befehl SAVE durchführen, die letzte Speicherzeit mit LASTSAVE überprüfen und die AOF-Datei mit BGREWRITEAOF optimieren. Diese Fähigkeiten sind unerlässlich, um die Datenhaltbarkeit zu gewährleisten und eine gesunde Redis-Instanz zu erhalten.