Aller au contenu

Redis : persistance et sauvegarde

Redis travaille en mémoire ; la persistance écrit les données sur disque pour survivre à un redémarrage.

Mode Principe Avantage Limite
RDB (instantané) Copie complète à intervalles réguliers (dump.rdb) Fichier compact, restauration rapide Perte des écritures depuis le dernier instantané
AOF (journal) Chaque écriture est ajoutée à un journal Perte limitée à environ 1 seconde Fichier plus gros, restauration plus lente

Dans /etc/redis/redis.conf :

# RDB : instantané si 1 clé change en 900 s, 10 en 300 s, 10000 en 60 s
save 900 1
save 300 10
save 60 10000
# AOF
appendonly yes
appendfsync everysec
appendfsync Comportement
always Écriture disque à chaque commande : le plus sûr, le plus lent
everysec Une fois par seconde : compromis recommandé
no Laisse le système décider : le plus rapide, le moins sûr

Choix usuel : AOF everysec pour des données à conserver, RDB seul pour un cache dont la perte est acceptable, aucune persistance (save "" et appendonly no) pour un cache pur.

Fenêtre de terminal
redis-cli BGSAVE # instantané en arrière-plan
redis-cli LASTSAVE # date du dernier instantané (horodatage Unix)
redis-cli INFO persistence | grep -E "rdb_last_save_time|rdb_last_bgsave_status|aof_enabled"
redis-cli BGREWRITEAOF # compacte le journal AOF

SAVE fait la même chose en bloquant le serveur : à éviter hors maintenance.

Fenêtre de terminal
sudo ls -lh /var/lib/redis/
Fichier Contenu
dump.rdb Instantané RDB
appendonlydir/ Journal AOF (plusieurs fichiers depuis Redis 7)
Fenêtre de terminal
redis-cli BGSAVE
sleep 5
redis-cli INFO persistence | grep rdb_last_bgsave_status # ok
sudo cp /var/lib/redis/dump.rdb /var/backups/redis-dump-$(date +%F).rdb

Attendre la fin de BGSAVE (rdb_bgsave_in_progress:0) avant de copier. Avec AOF activé, copier aussi le dossier appendonlydir/. Conserver une copie hors du serveur.

Fenêtre de terminal
sudo systemctl stop redis-server
sudo cp /var/backups/redis-dump-2026-01-01.rdb /var/lib/redis/dump.rdb
sudo chown redis:redis /var/lib/redis/dump.rdb
sudo systemctl start redis-server
redis-cli DBSIZE
Symptôme Piste
MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist Disque plein ou droits sur /var/lib/redis : df -h, journal Redis
Données perdues au redémarrage Persistance désactivée (save "", appendonly no)
Redémarrage très long Gros fichier AOF : BGREWRITEAOF, ou RDB
Échec de BGSAVE (Can't save in background: fork) Mémoire insuffisante : vm.overcommit_memory = 1
Journal AOF corrompu redis-check-aof --fix sur le fichier concerné, après copie de sauvegarde

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

Le fonctionnement est identique avec Redis 7.0 et 8.0 ; le journal AOF est découpé en plusieurs fichiers dans appendonlydir/ depuis Redis 7.