Begriff
Cache
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Ein Cache (gesprochen "Käsch") ist wie deine Hosentasche. Wenn du handwerkerst, hast du dein Werkzeug im Keller (Festplatte/Server). Das dauert lange zu holen. Die Dinge, die du jetzt gerade oft brauchst (Schraubenzieher), steckst du in die Hosentasche (Cache). Da greifst du blitzschnell drauf zu.
- Browser-Cache: Speichert Bilder von Webseiten, damit sie beim nächsten Besuch nicht neu geladen werden müssen.
- CPU-Cache: Speichert Zahlen, mit denen der Prozessor gerade rechnet.
Merksatz: Ein schneller Zwischenspeicher für Daten, die oft benötigt werden.
"Leeren Sie mal Ihren Cache!" Das ist der Standard-Tipp vom Support. Warum? Manchmal hat der Cache alte Daten. Die Webseite hat ein neues Design, aber dein Browser zeigt noch das alte Bild aus der Hosentasche (Cache), weil er denkt "Das kenne ich schon". Cache leeren zwingt ihn, neu in den Keller zu gehen und die frischen Daten zu holen.
Shortcut: Strg + F5 (Windows) oder Cmd + Shift + R (Mac) lädt die Seite ohne Cache neu.
Praxisroutine
In der Praxis lernst du Cache, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
1. Cache Eviction (Verdrängung)
Der Cache ist klein und teuer. Wenn er voll ist, muss was raus. Aber was?
- LRU (Least Recently Used): Wirf das raus, was am längsten nicht benutzt wurde. (Standard).
- FIFO (First In, First Out): Was zuerst drin war, fliegt zuerst raus.
- LFU (Least Frequently Used): Was am seltensten benutzt wird, fliegt raus.
2. Cache Invalidation
Das schwerste Problem der Informatik: "Wann sind Daten ungültig?" Wenn du auf Facebook dein Profilbild änderst, muss der Cache auf allen Servern weltweit wissen: "Das alte Bild ist tot, hol das neue!". Wenn das nicht klappt, sehen Freunde noch tagelang dein altes Bild.
1. Die CPU Memory Hierarchy
Moderne Prozessoren verhungern quasi an Bandbreite, weil Festplatten und RAM im Vergleich zum Rechenkern lachhaft langsam sind. Um die Cycles (CPU-Zyklen) nicht warten zu lassen, existiert ein extremer Hierarchie-Aufwand in Silicon (SRAM).
- L1 Cache: Das kleinste Gehirn. Direkt neben dem Rechenkern (etwa 64 KB je Core). Nanosekunden-Bereich. Fasst die nächste Befehlszeile der Loop.
- L2 Cache: Größer (ca. 1 MB pro Core). Ein Back Up für L1 Misses.
- L3 Cache: Sehr groß (bis 64 MB und mehr). Geteilt zwischen allen Cores eines Chips. Ein CPU-L3-Cache-Miss kostet extrem viel Zeit (ca. 100+ Taktzyklen Stagnation, weil man über den Mainboard-Bus den langsamen DDR-RAM kontaktieren muss). Die Wissenschaft der Compiler-Architektur konzentriert sich oft pur auf "Data Locality", also Daten so im Speicher auszurichten, dass der Chip sie pre-fetchen und den L1-Cache intelligent bestücken kann.
2. Verteilter Cache & Redis
Im Web Backend nutzt man sogenannte Distributed In-Memory Caches wie Redis oder Memcached, oft im Zusammenspiel mit einer viel gravideren relationalen Datenbank (PostgreSQL).
Lieferte die DB nach einem teuren 3-Sekunden Query (JOIN über tausende Sales-Daten) die Top 10 Produkte, speichert das Backend das Resultat formatiert in Redis (SET top10 "produkte").
Die nächsten 10.000 User in der Minute kontaktieren nicht mehr Postgres, das Backend greift im Key-Value-Speicher von Redis den JSON-Wert. Da alles völlig lokal im RAM des Cache-Servers liegt, antwortet er in fast sub-Millisekunden-Zeit, und die DB stürzt unter Netzwerklast wegen SELECT Anfragen nicht zusammen.
3. HTTP Caching Headers und ETags
Auf HTTP Layer 7 hat sich Cache-Kultur institutionalisiert, damit der Browser sich blind steuern lässt.
Das API Gateway eines Servers liefert das Bild eines Avatars als HTTP Response.
Er schickt einen Cache-Control Header mit: Cache-Control: max-age=3600. Der Browser schreibt das Bild in die lokale Platte. Für 1 Stunde wird er (auch beim Reload durch User) nie wieder eine Netzwerkanfrage stellen. Er nimmt stur das Platte-Bild.
Und was macht er nach einer Stunde, wenn sie abläuft? Statt blind ein 5 MB Bild neu zu laden, schickt er via Header dem Server ein ETag (meist ein MD5 Hash des letzten Files, z.B. 123ab). Der Server prüft: Das Server-Bild hat sich nicht verändert, es ist noch ETag 123! Er spart sich die Übertragung der Payload, retourniert 304 Not Modified, und der Browser weiß: Ich darf das Bild wieder in meine Tasche packen "es bleibt das Caching-Original".
Quick-Check
Ist mehr Cache immer besser?
Ja, aber Cache-Speicher ist extrem teuer (SRAM für CPU-Cache). Deshalb haben CPUs nur wenige Megabyte davon.Was ist ein "Cache Strike" / "Cache Hit"?
Cache Hit: "Juhu, Daten waren in der Hosentasche!" (Schnell).
Cache Miss: "Mist, ich muss in den Keller laufen." (Langsam).Speichert der Cache Passwörter?
Browser fragen oft "Passwort speichern?", aber das ist der Passwort-Manager, nicht der normale Cache. Der Web-Cache speichert eher Bilder, Skripte und HTML.