Aller au contenu

Runbook: Redémarrage Redis

PD-3 CA-05 | Temps max: 10 min | Prérequis: Accès SSH, droits sudo


Prérequis

  • Accès SSH au serveur Redis (dev/staging/prod)
  • Droits sudo sur le serveur
  • Connaissance du mot de passe Redis (dans Vault: kv/infra/redis)

Diagnostic

1. Vérifier l'état du service Redis

sudo systemctl status redis

Résultat attendu: Active: active (running) ou message d'erreur

2. Vérifier la connectivité Redis

redis-cli -a $REDIS_PASSWORD ping

Résultat attendu: PONG

3. Vérifier les logs Redis

sudo journalctl -u redis -n 50 --no-pager

Résolution

Étape 1: Arrêter Redis proprement

sudo systemctl stop redis

Étape 2: Vérifier l'arrêt

sudo systemctl status redis

Résultat attendu: Active: inactive (dead)

Étape 3: Redémarrer Redis

sudo systemctl start redis

Étape 4: Vérifier le redémarrage

sudo systemctl status redis
redis-cli -a $REDIS_PASSWORD ping

Résultat attendu: Service active (running) et réponse PONG


Vérification

1. Vérifier la persistance AOF

redis-cli -a $REDIS_PASSWORD CONFIG GET appendonly

Résultat attendu: appendonly = yes

2. Vérifier les jobs préservés

redis-cli -a $REDIS_PASSWORD KEYS "bull:*"

Résultat attendu: Liste des clés BullMQ non vide (si jobs existaient avant restart)

3. Vérifier via l'API backend

curl -s http://localhost:3000/health/redis | jq .

Résultat attendu: {"status": "healthy"}


Rollback

Si le redémarrage échoue:

1. Vérifier les logs d'erreur

sudo journalctl -u redis -n 100 --no-pager

2. Vérifier la configuration

sudo redis-server --test-memory 256
sudo redis-check-aof --fix /var/lib/redis/appendonly.aof

3. Restaurer depuis backup (si corruption)

sudo systemctl stop redis
sudo cp /var/lib/redis/dump.rdb.backup /var/lib/redis/dump.rdb
sudo systemctl start redis

Critère de succès

  • Service Redis active (running)
  • redis-cli ping retourne PONG
  • Jobs BullMQ préservés (clés bull:* présentes)
  • API /health/redis retourne healthy

Références

  • PD-3-specification.md: INV-03 (persistance)
  • PD-3-plan.md: Phase 4
  • TC-NOM-02: Reprise après interruption