Pourquoi auto-héberger Redis sur un VPS
Redis vit en mémoire : sa performance dépend directement de la RAM et de la latence réseau. Les offres managées facturent chaque Go de RAM très cher et imposent des plafonds de connexions. Sur un VPS, vous dimensionnez la RAM selon votre besoin réel, vous configurez librement maxmemory et la politique d'éviction (allkeys-lru, volatile-ttl...), et vous activez la persistance RDB et/ou AOF selon votre tolérance à la perte de données. Pour un cache applicatif, un broker de jobs (Sidekiq, BullMQ, Celery) ou un store de sessions, un Redis collé à votre application sur le même réseau privé élimine la latence inter-datacenter et réduit drastiquement le coût.
Les bénéfices concrets d'un Redis auto-hébergé
- Latence sub-milliseconde si Redis tourne sur le même VPS ou le même réseau privé que votre app.
- Contrôle de
maxmemoryet de la politique d'éviction selon votre usage cache ou file de jobs. - Persistance au choix : RDB (snapshots), AOF (journal), ou les deux pour la durabilité.
- Coût RAM sans surfacturation : vous payez le forfait VPS, pas le Go de mémoire premium.
- Modules libres : RediSearch, RedisJSON, RedisBloom selon vos besoins.
- Aucun plafond arbitraire sur le nombre de connexions clients simultanées.
Prérequis matériels et logiciels
Redis étant en mémoire, c'est la RAM qui compte, pas le CPU. Pour un cache modeste ou un store de sessions, 1 vCPU et 1 à 2 Go de RAM suffisent. Si Redis sert de broker pour des milliers de jobs en file ou stocke des datasets en mémoire de plusieurs Go, dimensionnez la RAM à au moins le double de votre maxmemory cible pour absorber la copie-sur-écriture lors des snapshots RDB. Côté logiciel : Ubuntu 22.04/24.04 LTS, Docker et Compose v2, un volume persistant pour AOF/RDB si vous activez la persistance, et le paramétrage vm.overcommit_memory=1 sur l'hôte pour éviter les échecs de fork lors des sauvegardes.
Déployer Redis avec Docker en production
Préparer l'hôte
Installez Docker, puis réglez vm.overcommit_memory=1 via sysctl pour fiabiliser les snapshots, et désactivez les Transparent Huge Pages. Fermez le port 6379 vers l'extérieur : un Redis exposé sans mot de passe est une cible classique de cryptomineurs.
Écrire le docker-compose.yml
Déclarez un service redis:7-alpine avec une commande personnalisée pointant vers un redis.conf monté en lecture seule. Activez requirepass, définissez maxmemory et maxmemory-policy, et montez un volume pour /data si vous voulez la persistance.
Configurer la sécurité
Dans redis.conf, définissez un mot de passe fort via requirepass, renommez ou désactivez les commandes dangereuses (FLUSHALL, CONFIG) avec rename-command, et limitez l'écoute au réseau interne. Pour un accès distant, activez TLS natif Redis (tls-port) ou passez par un tunnel.
Choisir la stratégie de persistance
Pour un pur cache, désactivez la persistance pour gagner en perf. Pour un broker de jobs où la perte est inacceptable, activez l'AOF avec appendfsync everysec : un bon compromis entre durabilité et débit. Combinez RDB + AOF pour des redémarrages rapides et une journalisation fiable.
Connecter votre application
Lancez avec docker compose up -d et testez avec docker compose exec redis redis-cli -a VOTRE_PASS ping. Faites pointer votre application vers le réseau Docker interne plutôt que vers une IP publique, pour la latence et la sécurité.
Surveiller la mémoire
Surveillez used_memory et evicted_keys via redis-cli INFO. Si les évictions montent, augmentez la RAM ou affinez la politique. Configurez une alerte quand l'utilisation mémoire dépasse 80% de maxmemory.
Surveillez le ratio keyspace_hits / keyspace_misses via INFO stats : un taux de hit faible signifie que votre cache est mal dimensionné ou que vos TTL sont trop courts. Pour les workloads critiques, déployez Redis Sentinel sur trois VPS afin d'obtenir un failover automatique : si le maître tombe, un esclave est promu sans intervention, et vos applications sont redirigées via le service Sentinel.
La documentation officielle
Pour la configuration avancée et les options propres à l'outil, référez-vous à la documentation officielle de Redis. Ce guide couvre la mise en ligne sur VPS ; la doc éditeur reste la référence pour les réglages fins, les mises à jour majeures et les cas d'usage spécifiques.