Prenez le TTL le plus court qui change encore la donne, puis invalidez à l'écriture en supprimant ou en écrasant la clé dans le chemin qui modifie la ligne. Indexez sur toutes les entrées qui changent le résultat, y compris le locataire et une version de schéma. Ajoutez un verrou single flight pour qu'un manque ne provoque pas une ruée sur la base. Acceptez une obsolescence explicite là où elle est inoffensive, et suivez le taux de hit pour savoir que ça marche.
Pourquoi les recruteurs posent cette question
Un cache est facile à ajouter et difficile à garder correct, donc le recruteur veut vous voir réfléchir à l'invalidation et à la conception des clés plutôt que de citer Redis. Il vérifie aussi les modes de défaillance : les ruées à l'expiration, les clés qui font fuiter des données entre locataires, et les caches qui cessent discrètement de fonctionner après un déploiement. Mesurer le taux de hit montre que vous remarqueriez qu'un cache a silencieusement cessé d'aider.
Comment structurer votre réponse
- Confirmez que l'endpoint est à forte lecture et tolère un peu d'obsolescence.
- Concevez la clé de cache, en incluant le locataire et la version.
- Expliquez la stratégie d'invalidation à l'écriture.
- Couvrez les ruées et la façon dont vous surveilleriez le taux de hit.
Exemple de réponse
Avant d'ajouter quoi que ce soit, je regarde si la requête ne peut pas simplement être rendue rapide, parce qu'un cache devant une mauvaise requête cache le problème jusqu'au moment où le cache rate au pire moment. En supposant que ce soit vraiment à forte lecture, je pars sur du cache aside dans Redis. La clé contient l'identifiant du locataire, les vrais paramètres de la requête, et un préfixe de version que je peux incrémenter au déploiement pour qu'une forme de réponse modifiée ne soit jamais servie depuis d'anciennes entrées. Le TTL est le filet de sécurité et non le mécanisme : j'invalide explicitement à l'écriture, dans le même chemin de code qui met à jour la ligne, donc la fenêtre d'obsolescence se compte en millisecondes dans le cas normal. Le mode de défaillance que j'anticipe, c'est la ruée, quand une clé chaude expire et que deux cents requêtes ratent toutes et tapent la base en même temps, donc j'utilise un verrou single flight et les perdants attendent le gagnant. Ensuite j'exporte le taux de hit comme métrique, parce qu'un cache passé de 95 pour cent à 10 après un refactoring passe inaperçu jusqu'à ce que la base s'écroule.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Que mettriez-vous en cache dans Redis plutôt qu'au niveau du CDN ?
- Comment géreriez-vous un cache qui tombe complètement ?
- Quand le write through est-il meilleur que le cache aside ici ?
Autres questions pour Développeur full stack
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions