Nimm die kürzeste TTL, die noch etwas bringt, und invalidiere beim Schreiben, indem du den Key in demselben Pfad löschst oder überschreibst, der die Zeile ändert. Bilde den Key aus jeder Eingabe, die das Ergebnis verändert, inklusive Mandant und Schema-Version. Ergänz Single-Flight-Locking, damit ein Miss die Datenbank nicht überrennt. Akzeptier bewusste Veraltung, wo sie harmlos ist, und verfolge die Trefferquote, damit du weißt, dass es funktioniert.
Warum Interviewer das fragen
Ein Cache ist leicht ergänzt und schwer korrekt zu halten, der Interviewer will also sehen, dass du über Invalidierung und Key-Design nachdenkst und nicht nur Redis nennst. Er prüft außerdem die Fehlermodi: Ansturm beim Ablauf, Keys, die Daten zwischen Mandanten leaken, und Caches, die nach einem Deploy still nicht mehr treffen. Die Trefferquote zu messen zeigt, dass du merkst, wenn der Cache leise aufhört zu helfen.
So baust du deine Antwort auf
- Bestätige, dass der Endpoint leselastig und gegenüber etwas Veraltung tolerant ist.
- Entwirf den Cache-Key inklusive Mandant und Version.
- Erklär die Invalidierungsstrategie beim Schreiben.
- Deck den Ansturm ab und wie du die Trefferquote überwachst.
Beispielantwort
Bevor ich irgendetwas ergänze, prüfe ich, ob sich die Query nicht einfach schnell machen lässt, denn ein Cache vor einer schlechten Query verbirgt das Problem, bis der Cache im ungünstigsten Moment nicht trifft. Angenommen, es ist wirklich leselastig, dann gehe ich mit Cache-aside in Redis. Der Key enthält die Mandanten-Id, die tatsächlichen Query-Parameter und ein Versionspräfix, das ich beim Deploy hochziehen kann, damit eine geänderte Antwortform nie aus alten Einträgen ausgeliefert wird. Die TTL ist das Sicherheitsnetz und nicht der Mechanismus: ich invalidiere explizit beim Schreiben, in demselben Codepfad, der die Zeile aktualisiert, das Veraltungsfenster ist im Normalfall also Millisekunden. Der Fehlermodus, für den ich plane, ist der Ansturm, bei dem ein heißer Key abläuft und zweihundert Requests gleichzeitig danebengreifen und die Datenbank treffen, ich nutze also ein Single-Flight-Lock und lasse die Verlierer auf den Gewinner warten. Danach exportiere ich die Trefferquote als Metrik, denn ein Cache, der nach einem Refactor von 95 Prozent auf 10 gefallen ist, fällt niemandem auf, bis die Datenbank umkippt.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Was würdest du in Redis cachen und was am CDN?
- Wie würdest du damit umgehen, wenn der Cache komplett ausfällt?
- Wann ist Write-through hier besser als Cache-aside?
Weitere Fragen für Full-Stack-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen