Redis reparieren, das wegen eines beschädigten AOF nicht startet (redis-check-aof, redis-check-rdb)
RedisPersistenzBefehl
# With Redis stopped, copy the files first:
cp -a /var/lib/redis/appendonlydir /var/lib/redis/appendonlydir.bak
# Check (7.0+ multi-part AOF: pass the manifest file):
redis-check-aof /var/lib/redis/appendonlydir/appendonly.aof.manifest
# Repair by truncating everything after the first corrupt point (asks for confirmation):
redis-check-aof --fix /var/lib/redis/appendonlydir/appendonly.aof.manifest
# Verify the RDB file:
redis-check-rdb /var/lib/redis/dump.rdbWas es tut
Validiert die AOF-Dateien (base + incr + manifest) und die RDB-Datei; schneidet das unvollständige oder beschädigte Ende des AOF ab, damit Redis wieder starten kann.
Wann einsetzen
Wenn Redis nach einem Stromausfall, einer vollen Platte oder einem abrupten Herunterfahren mit 'Bad file format reading the append only file' oder 'Unexpected EOF' nicht startet.
Vorsicht
--fix löscht alles von der ersten beschädigten Stelle bis zum Dateiende; liegt die Beschädigung in der Mitte der Datei, gehen alle späteren Schreibvorgänge verloren. Prüfe vor dem Bestätigen in der Ausgabe (ok_up_to, diff), wie viele Bytes abgeschnitten werden. Ein unvollständiger letzter Befehl (z. B. ein großes HSET) wird vollständig verworfen. Erstelle immer zuerst eine Kopie.