Warum ist meine Redis-Backup-Datei (.rdb) immer kleiner als die BytesUsedForCache-Metrik im ElastiCache-Cluster?

Lesedauer: 2 Minute
0

Ich verwende Amazon ElastiCache für Redis. Warum ist meine Redis-Backup-Datei (.rdb) immer kleiner als die BytesUsedForCache-Metrik im Cluster?

Behebung

Die BytesUsedForCache-Metrik beinhaltet Bytes für alle Zwecke. Dazu gehören die tatsächliche Schlüsselgröße, Header und Speicherfragmentierung. Abgelaufene Schlüssel verbrauchen ebenfalls Speicherplatz, bis Redis sie asynchron entfernt, entweder passiv oder aktiv. Weitere Informationen finden Sie auf der Redis.io-Website unter Expire key seconds - How Redis expires keys.

ElastiCache verwendet sowohl Fork- als auch Fork-less-Backup-Prozesse. Beide Prozesse speichern alle Schlüssel auf der Festplatte, um die .rdb-Datei zu erstellen. Die .rdb-Datei verwendet keine Zeiger oder abgelaufenen Schlüssel und befasst sich nicht mit Speicherfragmentierung, Metadaten oder Puffern. Das bedeutet, dass die Backup-Dateien kleiner sind als die BytesUsedForCache-Metrik.

Ihr Redis-Cluster könnte beispielsweise BytesUsedForCache als 15 GB anzeigen. Es könnte auch zeigen, dass das Backup während einer Zeit starker Lese-/Schreibanfragen auf dem Cluster initiiert wurde. Nach Abschluss des Backupvorgangs liegt die Größe des Backup-Caches möglicherweise zwischen 10 GB oder 12 GB statt 15 GB. Das liegt daran, dass das Backup keine abgelaufenen Schlüssel, Zeiger usw. enthält.

Hinweis:

  • Die Cache-Größe in ElastiCache-Backups wird aus dem zum Zeitpunkt der Snapshot-Erstellung verwendeten Redis_memory abgeleitet. Dies ist eine Schätzung der Größe des unkomprimierten Caches. Wenn Sie einen Backup-Snapshot nach Amazon Simple Storage Service (Amazon S3) exportieren, wird die komprimierte serialisierte Dateigröße exportiert.
  • Sie können die Datenintegrität des Backups mit dem Befehl info keyspace oder dem Befehl DBSIZE überprüfen. Vergleichen Sie die Anzahl der Schlüssel im ursprünglichen Cluster und in dem aus der RDB wiederhergestellten Cluster. Stellen Sie sicher, dass zwischen der Erstellung des Snapshots und der Wiederherstellung keine Schlüssel-Aktionen zum Einfügen, Löschen oder Bereinigen stattgefunden haben. Weitere Informationen finden Sie unter Warum hat mein Replikat eine andere Anzahl von Schlüsseln als seine Master-Instance? in den Redis-FAQ.

Verwandte Informationen

Backup und Wiederherstellung für ElastiCache for Redis

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren