Konfigurieren als Persistenz
Redis ist bekannt für seine leistungsstarke Key-Value-Datenbank, die alle Daten im RAM speichert, um langsame Festplattenzugriffe zu vermeiden. Dennoch birgt dieser RAM-zentrierte Ansatz das Risiko eines Datenverlusts im Falle eines Redis Prozesses oder eines Hostvorfalls, da RAM flüchtig ist. Um diesem Problem zu begegnen, bietet Redis Mechanismen für die Persistenz von Daten auf der Festplatte.
Persistenzmodi in Redis
Es sind zwei primäre Persistenzmodi verfügbar: RDB (Snapshot-Modus) und AOF (starke Persistenz). Jeder Modus ist mit unterschiedlichen Kompromissen in Bezug auf Leistung und Zuverlässigkeit verbunden. Die Wahl des geeigneten Persistenzmodus auf Redis erfordert daher eine strategische Entscheidung.
RDB-Schnappschuss
Redis speichert Schnappschüsse des Datensatzes auf der Festplatte in einer Binärdatei namens dump.rdb. Der Datensatz wird alle N Sekunden gespeichert, wenn es mindestens M Änderungen gibt.
- Speichern 3600 1: Jede Stunde, wenn sich mindestens ein Schlüssel geändert hat.
- 300 100 speichern: Alle 5 Minuten, wenn sich mindestens 100 Schlüssel geändert haben.
- 60 10000 speichern: Jede Minute, wenn sich mindestens 10.000 Schlüssel geändert haben.
AOF (Append only File)
Wenn AOF aktiviert ist, hält Redis die Daten fest, indem jeder vom Dienst empfangene Schreibvorgang protokolliert wird. AOF wird durch die fsync-Richtlinie konfiguriert, um die Haltbarkeit der Daten zu gewährleisten.
- Immer: Am sichersten, aber mit der geringsten Leistung.
- Everysec (Standard): Sicher mit besserer Leistung.
- Nein: In der Regel entscheidet das Betriebssystem, wann fsync durchgeführt werden soll, was in der Regel etwa 30 Sekunden dauert (unsicher, aber mit der besten Leistung).
Weitere Informationen finden Sie unter Redis persistence.
Einrichten der Persistenz in Databases for Redis
Bei der Bereitstellung auf IBM Cloud® Databases for Redis sind sowohl RDB-Snapshot als auch AOF bei der Bereitstellung standardmäßig aktiviert und Ihre Daten werden auf die Festplatte geschrieben. Die Benutzer können jedoch AOF deaktivieren, um Databases for Redis als Cache zu verwenden, was die IOPS-Last verringert und zu einer besseren Leistung führt.
Databases for Redis arbeitet mit Hochverfügbarkeit, wobei RDB-Snapshots nicht deaktiviert werden können.
- Befolgen Sie diese Schritte, um eine Databases for Redis Instanz bereitzustellen.
- Überprüfen Sie die Persistenzeinstellung, indem Sie die Konfiguration von Databases for Redis überprüfen. Greifen Sie über Redis CLI auf die Instanz ICD Redis zu.
Standardmäßig ist AOF auf ja eingestellt, so dass Databases for Redis so konfiguriert ist, dass AOF-Persistenz mit fsync jede Sekunde zusammen mit RDB-Snapshots erstellt wird.
AOF kann ausgeschaltet werden, wenn Sie Redis als Cache verwenden möchten. Dies kann auch die Verfügbarkeit der Datenbank erhöhen, da der Prozess Redis im Falle eines Failovers die Transaktionsprotokolle nicht erneut abspielen muss. Weitere Informationen finden Sie unter Konfigurieren von Redis als Cache.
Rekonfigurieren einer Databases for Redis als dauerhafte Einstellung
Um Änderungen an einer Databases for Redis Instanz zu konfigurieren, müssen Sie entweder die IBM Cloud CLI oder die API für die Konfiguration der Persistenz verwenden, wie im folgenden Beispiel dargestellt.
Nehmen Sie die folgenden Einstellungen vor:
- Setzen Sie
appendonly
auf ja, um die AOF-Persistenz zu aktivieren. - Vergewissern Sie sich, dass
maxmemory-policy
auf noeviction eingestellt ist, damit der Schlüssel nicht abläuft. - Setzen Sie
stop-writes-on-bgsave-error
auf "ja", um Schreibvorgänge im Falle von Sicherungsfehlern anzuhalten.
CLI-Beispiel
ibmcloud cdb deployment-configuration '<deployment name or CRN>' '{"configuration":{"maxmemory-policy":" noeviction", "appendonly":"yes", "stop-writes-on-bgsave-error":"yes"}}'
API-Beispiel
curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/configuration/schema' -H "Authorization: Bearer $APIKEY" -H "Content-Type: application/json" -d '{"configuration":{ "maxmemory-policy":""noeviction, "appendonly":"yes", "stop-writes-on-bgsave-error":"yes" } }'