Redis-Caching-Strategie: Keys, TTLs, Invalidierung und Stampede
Lege fest, was in Redis gecacht wird und wie: Muster je Datentyp, Key-Benennung, TTLs mit Jitter, Invalidierung, Schutz vor Cache Stampede, Speicherrichtlinie und Beispielcode. Entwickelt für ChatGPT, Claude, Gemini und Microsoft Copilot. Er enthält 4 anpassbare Variablen und lässt sich kostenlos mit einem Klick kopieren.
Experte · Code · Redaktionelle Prüfung ausstehend
Prompt
Handle als Backend-Architekt mit Schwerpunkt Performance und Caching mit Redis.
Kontext:
- Anwendung und Stack: {{anwendung}}
- Daten, die gecacht werden könnten, und ihr Lese- und Schreibmuster: {{daten}}
- Toleranz für veraltete Daten: {{toleranz}}
- Aktuelles Problem: {{problem}}
Liefere:
1. Was gecacht wird und was nicht: eine Tabelle mit jedem Datenelement, geschätztem Lese-/Schreibverhältnis (oder [AUSFÜLLEN], wenn unbekannt), Kosten der Neuberechnung und Entscheidung.
2. Das Muster für jedes Element (Cache-Aside, Read-Through, Write-Through oder Write-Behind) mit Begründung.
3. Key-Design: Namenskonvention, Versionspräfix für Masseninvalidierung und wie unbegrenztes Key-Wachstum vermieden wird.
4. TTLs je Datentyp, mit Jitter, damit nicht alle gleichzeitig ablaufen.
5. Invalidierung: welche Ereignisse welchen Key löschen oder aktualisieren, wie Race Conditions zwischen Datenbank- und Cache-Schreibvorgang vermieden werden und was passiert, wenn die Invalidierung fehlschlägt.
6. Schutz vor Cache Stampede: Lock mit `SET NX` und Ablaufzeit, probabilistisches frühes Auffrischen oder Ausliefern veralteter Daten während der Neuberechnung.
7. Redis-Konfiguration: `maxmemory`, passende Eviction Policy, Serialisierung und maximale Wertgröße.
8. Verhalten bei Ausfall von Redis: kurze Timeouts, Rückfall auf die Datenbank und Schutz der Datenbank vor Überlastung.
9. Zu messende Kennzahlen (Trefferquote, Latenz, Evictions, Speicher) und ein schrittweiser Rollout-Plan.
10. Beispielcode in meinem Stack für den Hauptfall, inklusive Stampede-Schutz.
Einschränkungen:
- Nenne keine erfundenen Verbesserungszahlen; erkläre, wie man vorher und nachher misst.
- Fehlen Angaben zu Volumen oder Konsistenz, frag nach, bevor du empfiehlst.
- Weise auf Daten hin, die nie gemeinsam gecacht werden dürfen (z. B. personenbezogene Daten anderer Nutzer).So verwenden Sie ihn
- Liste die langsamsten oder meistgenutzten Endpunkte oder Abfragen auf und wie oft sich ihre Daten ändern.
- Gib an, wie veraltet jedes Datenelement sein darf, ohne Probleme zu verursachen.
- Führe Caching zuerst für einen Fall ein, miss die Trefferquote und erweitere dann.
Anwendungsbeispiel
App: Laravel-Shop mit PHP 8.3 · Daten: Katalog (ändert sich wenige Male am Tag) und Lagerbestand (minütlich) · Problem: Kategorieseite braucht in Spitzenzeiten 1,8 s.
Beispielergebnis
1. Was gecacht wird
| Daten | Lesen/Schreiben | Entscheidung |
|---|---|---|
| Katalog pro Kategorie | Sehr hoch / wenige pro Tag | Cache-aside, TTL ~10 Min. |
| Lagerbestand | Hoch / minütlich | 30 s TTL oder direkt aus MySQL |
| Warenkorb | Pro Nutzer | Schlüssel pro Nutzer, nie geteilt |
| Preis im Checkout | — | Nicht cachen: immer aus MySQL |
10. Code: Katalog mit Stampede-Schutz
public function produkteDerKategorie(int $kategorieId): array
{
$version = Cache::get('katalog:version', 1); // Erhöhen invalidiert den ganzen Katalog
$key = "v{$version}:kategorie:{$kategorieId}:produkte";
$ttl = 600 - random_int(0, 60); // Jitter, damit nicht alles gleichzeitig abläuft
if (($cached = Cache::get($key)) !== null) {
return $cached;
}
// Nur ein Prozess baut neu auf; die anderen warten bis zu 3 s
return Cache::lock("lock:{$key}", 10)->block(3, fn () =>
Cache::remember($key, $ttl, fn () => Product::query()
->where('category_id', $kategorieId)
->where('active', true)
->get(['id', 'name', 'slug', 'image'])
->toArray())
);
}
Wirft block() eine LockTimeoutException, die letzte Kopie ausliefern oder MySQL mit begrenzter Parallelität abfragen. Trefferquote und p95-Latenz der Seite vor und nach dem Rollout messen…
Wichtige Fakten
- Kategorie
- Programmierung & Entwicklung · Softwarearchitektur
- Ausgabetyp
- Code
- Niveau
- Experte
- Entwickelt für
- ChatGPT, Claude, Gemini und Microsoft Copilot
- Verifiziert in
- Redaktionelle Prüfung ausstehend
- Variablen
- Anwendung und Stack, Daten und Zugriffsmuster, Toleranz für veraltete Daten und Aktuelles Problem
- Sprache
- Deutsch
- Preis
- Kostenlos, ohne Anmeldung
- Aktualisiert
- 07.11.2026
Häufig gestellte Fragen
Was ist ein Cache Stampede?
Läuft ein stark genutzter Key ab, versuchen Hunderte Anfragen gleichzeitig, ihn neu zu berechnen, und überlasten die Datenbank. Ein Lock, damit nur eine Anfrage neu berechnet, oder rechtzeitiges Auffrischen verhindert das.
Warum Jitter bei den TTLs?
Keys, die gleichzeitig mit derselben TTL angelegt werden, laufen gleichzeitig ab und erzeugen eine Lastspitze. Ein kleiner Zufallsversatz verteilt die Abläufe.
Welche Eviction Policy wähle ich in Redis?
Dient Redis nur als Cache, passen meist allkeys-lru oder allkeys-lfu. Teilt es sich die Instanz mit Daten, die nicht verloren gehen dürfen, etwa Queues, trenne diese in eine eigene Instanz.
Wofür ist dieser Prompt gedacht?
Lege fest, was in Redis gecacht wird und wie: Muster je Datentyp, Key-Benennung, TTLs mit Jitter, Invalidierung, Schutz vor Cache Stampede, Speicherrichtlinie und Beispielcode.
Mit welchen KI-Tools funktioniert er?
Er ist für ChatGPT, Claude, Gemini und Microsoft Copilot entwickelt. Wir haben ihn in diesen Tools noch nicht überprüft, daher können die Ergebnisse variieren.
Wie passe ich den Prompt an?
Klicken Sie auf „Anpassen“ und füllen Sie die Variablen aus (Anwendung und Stack, Daten und Zugriffsmuster, Toleranz für veraltete Daten und Aktuelles Problem). Der Text wird sofort aktualisiert und lässt sich anschließend mit einem Klick kopieren. Die Werte werden nur in Ihrem Browser gespeichert.
Brauche ich Erfahrung, um ihn zu verwenden?
Er ist für Experten: Er richtet sich an Personen mit Erfahrung im Thema, die das Ergebnis beurteilen und anpassen können.
Ist dieser Prompt kostenlos?
Ja. Jeder Prompt von HomeCasa Prompts ist kostenlos, ohne Anmeldung und ohne Abonnement. Sie können ihn auch in beruflichen Projekten verwenden.
Kann ich der KI-Ausgabe vertrauen?
Betrachten Sie sie als hochwertigen Entwurf: Prüfen Sie Daten, Zahlen und wichtige Aussagen immer, bevor Sie etwas veröffentlichen oder Entscheidungen treffen.