Ce qu’est réellement Redis
Redis est un magasin clé-valeur qui vit en mémoire. Vous lui donnez une clé (« user:1042:profile ») et une valeur, et il restitue la valeur à la demande — typiquement bien en dessous de la milliseconde, car rien ne touche un disque sur le chemin de lecture. Au-delà des simples chaînes, il fournit des structures de données pratiques : des hashes pour les objets, des listes et des sorted sets pour les flux et les classements, des sets pour les tests d’appartenance, des compteurs avec incréments atomiques.
Cette combinaison — la vitesse de la RAM plus de vraies structures de données — explique sa présence dans presque toutes les stacks web sérieuses. Il ne concurrence pas votre base de données sur la durabilité et la richesse des requêtes ; il la concurrence sur la capacité à *répondre vite à la même question, encore et encore*, et sur ce terrain il gagne de deux ou trois ordres de grandeur.
Le problème qu’il résout : le travail coûteux répété
Regardez ce qu’un backend typique fait à chaque requête : charger l’utilisateur, charger les réglages, exécuter la même requête de listing produit ou de menu qui n’a pas changé depuis le visiteur précédent, tout rendre. La majeure partie de ce travail produit la même réponse qu’il y a quelques secondes. La base de données la ré-exécute pourtant consciencieusement — parsing, planification, lecture de pages, jointures — et sous trafic, ces requêtes répétées deviennent le goulet d’étranglement bien avant le CPU.
Le pattern cache-aside corrige exactement cela : consulter Redis d’abord ; en cas de hit, renvoyer la copie en cache ; en cas de miss, exécuter la vraie requête, stocker le résultat avec une durée de vie, le renvoyer. Une page qui exigeait quinze requêtes n’exige plus que quinze lectures mémoire sur le chemin chaud. La base de données passe d’un accès par requête à un accès par fenêtre de TTL — c’est aussi pourquoi des sites survivent avec Redis à des pics de trafic qui les auraient aplatis sans lui.
Les sessions sont le deuxième emploi classique. Garder les sessions de connexion dans Redis plutôt que sur le disque local permet à n’importe quel réplica de votre application de servir n’importe quel utilisateur — c’est ce qui rend la montée en charge horizontale possible tout court.
Là où Redis n’aidera pas
Une frontière honnête vous épargne des semaines. Redis ne rend pas une requête lente rapide à la première exécution — il ne rend bon marché que la *seconde*, si bien qu’un index manquant en base de données reste un index manquant. Il ne corrige pas un chemin réseau lent vers l’origine ni des images trop lourdes ; ce sont des problèmes de diffusion, qui se résolvent en périphérie, pas en RAM. Et ce n’est pas un système d’enregistrement durable : la mémoire est finie et les évictions sont voulues par conception, donc tout ce que vous ne pouvez pas vous permettre de perdre appartient à la base de données, Redis n’en détenant qu’une copie jetable.
Le vrai coût du cache, c’est l’invalidation : un prix périmé ou une vérification de permissions obsolète est un bug que vos utilisateurs voient. Gardez des TTL courts là où la justesse compte, supprimez les clés explicitement quand la donnée sous-jacente change, et résistez à l’envie de mettre en cache ce qui change à chaque requête — un cache avec un taux de hit proche de zéro est de la pure surcharge.
Redis managé : la voie de l’add-on
Exploiter Redis soi-même n’est pas difficile le premier jour — c’est difficile le deux-centième : limites mémoire, redémarrages, montées de version, s’assurer que l’application se reconnecte. Une instance managée replie tout cela dans la plateforme.
Sur la plateforme de conteneurs de cdn.com.tr, Redis est un add-on que vous attachez à une application. L’activer provisionne l’instance et injecte automatiquement la connexion dans l’environnement de votre application — REDIS_HOST, REDIS_PORT, REDIS_DB et une REDIS_URL prête à l’emploi — de sorte que des frameworks comme Laravel, Django ou WordPress la reprennent par configuration, pas par code. La plateforme WordPress utilise le même add-on comme cache d’objets, l’un des changements uniques au meilleur levier pour un site WordPress chargé. Désactivez l’add-on et les variables sont nettoyées avec lui.
Activer Redis managé sur une application avec cdnctl
# attach a managed Redis instance to your app
cdnctl container addons enable-redis --account <uuid> --app <app_uuid> --env-prefix REDIS
# see what is attached
cdnctl container addons list --account <uuid> --app <app_uuid>
# remove it again
cdnctl container addons disable-redis --account <uuid> --app <app_uuid>
Redis et le CDN : deux couches de cache, deux métiers
Il vaut la peine d’être précis sur la relation entre un cache en mémoire et un CDN, car les deux « font du cache » sans être interchangeables. Le CDN met en cache des *réponses* — HTML fini, images, fichiers — près du visiteur, de sorte que beaucoup de requêtes n’atteignent jamais votre application. Redis met en cache des *données à l’intérieur* de l’application, de sorte que les requêtes qui arrivent quand même sont bon marché à servir.
Les deux se cumulent : la périphérie absorbe la majorité cacheable du trafic, et Redis rend rapide le reste personnalisé et non cacheable. Une stack qui combine les deux sert typiquement les pages anonymes depuis la périphérie en quelques dizaines de millisecondes et les pages connectées depuis un backend réchauffé par Redis — c’est l’architecture derrière la plupart des sites qui paraissent instantanés sous charge.
Questions fréquentes
Redis est-il une base de données ?
Il peut persister sur disque, mais ce n’est pas le métier pour lequel il faut l’embaucher. Traitez Redis comme une copie rapide et jetable de données dont la source de vérité vit dans une vraie base de données. Si perdre la donnée ferait mal, elle n’a pas sa place uniquement dans Redis.
Que dois-je mettre en cache en premier ?
Le journal des requêtes répond à votre place : les requêtes coûteuses les plus fréquentes dont les résultats changent rarement — listings produits, menus, réglages, fragments rendus. Mettez-les en cache avec un TTL raisonnable et vous capturez généralement l’essentiel du gain en un après-midi.
Combien de mémoire faut-il à un cache Redis ?
Moins que ce que la plupart des gens imaginent — les résultats de requêtes en cache et les sessions sont petits. Démarrez modestement, surveillez le taux de hit et les évictions, et n’agrandissez que lorsque des clés encore utiles commencent à être évincées. Un taux de hit élevé sur une petite instance vaut mieux qu’une grosse instance inoccupée.
WordPress profite-t-il de Redis ?
Nettement. WordPress relit sans cesse options et objets depuis MySQL ; un cache d’objets Redis transforme ces lectures en accès mémoire. Sur la plateforme WordPress managée, le même add-on Redis sert de cache d’objets, combiné au cache en périphérie placé devant.