Redis : le couteau suisse des données en mémoire
Redis est une base de données en mémoire ultra-rapide. Cache, sessions, queues, pub/sub : Redis excelle dans les cas où la latence compte. Chez Eve Media, Redis est un composant essentiel de notre architecture.
Pourquoi Redis est rapide
Les données sont en RAM, pas sur disque. Les opérations sont en O(1) ou O(log n). Single-threaded évite les locks. Redis peut traiter des centaines de milliers d’opérations par seconde.
Redis comme cache
Le cas d’usage classique : cacher les résultats de requêtes DB ou API coûteuses. Le premier appel query la source, stocke dans Redis. Les appels suivants lisent Redis. La latence passe de centaines de ms à < 1ms.
Stratégies de cache
Cache-aside : l’application gère le cache explicitement. Write-through : écriture simultanée cache et DB. TTL (Time To Live) expire les données automatiquement. Choisissez selon vos besoins de fraîcheur.
Sessions utilisateur
Stocker les sessions dans Redis plutôt qu’en mémoire serveur permet le scaling horizontal. Tous les serveurs accèdent aux mêmes sessions. express-session avec connect-redis est un setup classique.
Structures de données
Redis n’est pas qu’un key-value store. Strings, Lists, Sets, Sorted Sets, Hashes, Streams. Ces structures permettent des patterns comme les leaderboards (sorted sets), les queues (lists), les tags (sets).
Pub/Sub
Redis Pub/Sub permet la communication entre services. Un service publie, plusieurs s’abonnent. Utile pour les notifications temps réel, la synchronisation entre serveurs WebSocket.
Rate limiting
Redis est parfait pour le rate limiting. Compteurs avec TTL, sliding window avec sorted sets. Protégez vos APIs contre l’abus avec quelques commandes Redis.
Persistance
Redis peut persister les données sur disque (RDB snapshots, AOF logs). Ce n’est pas une base de données primaire mais vos données survivent aux redémarrages.
Redis managé
AWS ElastiCache, Redis Cloud, Upstash gèrent l’infrastructure. Haute disponibilité, réplication, backups inclus. Upstash offre du Redis serverless avec pricing à l’usage.
Bonnes pratiques
Préfixez vos clés (user:123:session). Utilisez des TTL pour éviter l’accumulation. Monitorer la mémoire utilisée. Évitez les clés trop grosses (> quelques MB).
Conclusion
Redis résout élégamment les problèmes de performance et de coordination. Sa simplicité cache une polyvalence remarquable. C’est un outil que tout développeur devrait maîtriser.
Chez Eve Media, nous utilisons Redis pour optimiser nos applications. Contactez-nous pour des architectures performantes.



