Réparer un Redis qui ne démarre pas à cause d'un AOF corrompu (redis-check-aof, redis-check-rdb)
RedisPersistanceCommande
# 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.rdbCe que fait la commande
Valide les fichiers AOF (base + incr + manifest) et le fichier RDB ; tronque la fin incomplète ou corrompue de l'AOF pour que Redis puisse redémarrer.
Quand l'utiliser
Quand Redis refuse de démarrer avec 'Bad file format reading the append only file' ou 'Unexpected EOF' après une coupure de courant, un disque plein ou un arrêt brutal.
Attention
--fix supprime tout depuis le premier point corrompu jusqu'à la fin du fichier ; si la corruption se trouve au milieu du fichier, toutes les écritures ultérieures sont perdues. Vérifiez dans la sortie combien d'octets seront tronqués (ok_up_to, diff) avant de confirmer. Une dernière commande incomplète (par ex. un gros HSET) est entièrement abandonnée. Faites toujours une copie au préalable.