Ein Cache ist ein schneller Zwi­schen­spei­cher, der Kopien häufig oder kürzlich genutzter Daten vorhält. Wie­der­hol­te Anfragen be­ant­wor­tet er direkt, ohne die lang­sa­me­re ur­sprüng­li­che Da­ten­quel­le – etwa den Ar­beits­spei­cher, eine Fest­plat­te, eine Datenbank oder einen Webserver – erneut ab­zu­fra­gen. Ein typisches Beispiel ist der Web­brow­ser: Er speichert Bilder, Style­sheets und Skripte einer Website lokal. Besuchen Sie die Seite erneut, lädt sie schneller, weil diese Daten aus dem Cache statt vom Server kommen.

De­fi­ni­ti­on: Cache

Ein Cache (aus­ge­spro­chen wie engl. „cash“, „Bargeld“) ist ein Zwi­schen­spei­cher, der Kopien von Daten für wie­der­hol­te Zugriffe be­reit­hält und so die Zu­griffs­zeit auf dieselben Daten ver­rin­gert. Caches arbeiten als trans­pa­ren­te Schicht zwischen dem Nutzer bzw. der an­fra­gen­den Anwendung und der ei­gent­li­chen Da­ten­quel­le. Der Prozess, Daten im Cache zu speichern, wird als „Caching“ be­zeich­net.

Um das Prinzip eines Cache zu ver­deut­li­chen, nehmen wir das folgende analoge Beispiel aus der Medizin:

Stellen Sie sich eine zahn­ärzt­li­che Be­hand­lung oder einen chir­ur­gi­schen Eingriff vor. Der Arzt bittet die Arzt­hel­fe­rin um eine Ressource, etwa ein Skalpell, ein Des­in­fek­ti­ons­mit­tel oder Ver­bands­ma­te­ri­al. Wurde die Ressource bereits be­reit­ge­legt, kann die Arzt­hel­fe­rin sofort auf die Bitte reagieren und sie dem Arzt reichen. An­dern­falls holt sie die Ressource aus dem Me­di­zin­schrank und reicht sie an den Arzt weiter. Nach Benutzung legt die Arzt­hel­fe­rin die Ressource für weitere, schnelle Zugriffe bereit.

Die einzelnen Res­sour­cen sind in der Nutzung nicht komplett un­ab­hän­gig von­ein­an­der: Verlangt der Arzt nach einem Des­in­fek­ti­ons­mit­tel, wird er si­cher­lich auch einen Tupfer benötigen; die Nadel ist ohne Faden nicht zu ge­brau­chen. Die Arzt­hel­fe­rin hält die zusammen be­nö­tig­ten Res­sour­cen deshalb gemeinsam bereit, um die Zu­griffs­zeit während der Nutzung zu mi­ni­mie­ren.

Das Be­reit­hal­ten von Res­sour­cen, die häufig benötigt oder zusammen verwendet werden, ist also ein ganz all­täg­li­cher Vorgang. In der In­for­ma­tik spricht man von zeit­li­cher Lokalität (was gerade benutzt wurde, wird bald wieder gebraucht) und räum­li­cher Lokalität (was be­nach­bart ist, wird oft zusammen gebraucht). Beide Effekte nutzt das Caching.

Was ist der Zweck eines Cache?

Der primäre Zweck eines Cache ist es, die Zu­griffs­zeit auf wichtige Daten zu re­du­zie­ren. Als „wichtige“ Daten gelten:

  1. Daten, die häufig benötigt werden: In diesem Fall wäre es ver­schwen­de­risch, die Daten immer wieder aus dem hinter dem Cache liegenden, lang­sa­me­ren Speicher zu laden. Statt­des­sen werden diese mit kürzerer Zu­griffs­zeit aus dem Cache aus­ge­lie­fert.
  2. Daten, deren Erzeugung ein auf­wen­di­ger Prozess zugrunde liegt: Manche Daten sind das Ergebnis einer re­chen­in­ten­si­ven Ver­ar­bei­tung, oder sie müssen aus ver­schie­de­nen Teilen zu­sam­men­ge­fügt werden. In diesen Fällen bietet es sich an, die fertigen Daten für weitere Abfragen in einem Cache zu speichern.
  3. Daten, die zusammen benötigt werden: Hier wäre es in­ef­fi­zi­ent, jedes Datum erst dann zu laden, wenn es abgerufen wird. Statt­des­sen lädt der Cache zu­sam­men­ge­hö­ri­ge Daten vor­aus­schau­end mit (so­ge­nann­tes Pre­fet­ching).

Wie funk­tio­niert ein Cache?

Im Folgenden geht es darum, wie ein Zwi­schen­spei­cher grund­sätz­lich arbeitet, wie er ent­schei­det, welche Daten er behält, und wo er sich befindet.

Grund­le­gen­des Cache-Schema

  1. Eine Anfrage nach einer Ressource wird an das System bzw. die Software, die über einen Cache verfügt, gestellt.
  2. Ist die Ressource bereits im Cache enthalten, wird sie aus dem Cache aus­ge­lie­fert. Dieser Fall wird als „Cache Hit“, also „Cache-Treffer“, be­zeich­net.
  3. Ist die Ressource nicht im Cache enthalten, wird sie zunächst aus dem da­hin­ter­lie­gen­den System in den Zwi­schen­spei­cher geladen und an­schlie­ßend aus­ge­lie­fert. Dieser Fall wird als „Cache Miss“, in etwa „Cache-Fehl­schuss“, be­zeich­net.
  4. Wird dieselbe Ressource in der Zukunft erneut abgefragt, kann sie ebenfalls als Cache Hit aus dem Cache aus­ge­lie­fert werden.
Bild: Funktionsweise eines Cache, dargestellt am Beispiel eines Web-Cache
Funk­ti­ons­wei­se eines Cache, dar­ge­stellt am Beispiel eines Web-Cache

Die Abbildung ver­deut­licht das grund­le­gen­de Schema: Ein Client stellt eine Anfrage nach einer Ressource an den Server (1). Im Fall des „Cache Hit“ ist die Ressource bereits im Cache enthalten und wird sogleich an den Client aus­ge­lie­fert (2). Im Fall des „Cache Miss“ ist die ab­ge­frag­te Ressource nicht im Cache enthalten und wird daher aus dem hinter dem Server liegenden System (hier eine Datenbank) abgefragt (2). Sobald die Ressource vorhanden ist (3), wird sie an den Client aus­ge­lie­fert (4) und für die weitere Nutzung im Cache ge­spei­chert.

Wie gut ein Cache arbeitet, zeigt die Tref­fer­quo­te (Hit Rate): der Anteil der Anfragen, die direkt aus dem Cache be­ant­wor­tet werden. Je höher sie ist, desto seltener muss auf die langsame Da­ten­quel­le zu­ge­grif­fen werden.

Welche Daten bleiben im Cache?

Ein Cache ist in der Regel kleiner als die Ge­samt­heit der Daten, die er be­schleu­ni­gen könnte. Ist er voll, muss er für neue Daten Platz schaffen. Welche Einträge er dabei entfernt, legt die Ver­drän­gungs­stra­te­gie (engl. „Cache Re­pla­ce­ment Policy“ oder „Eviction Policy“) fest:

Strategie Prinzip Entfernt wird …
LRU (Least Recently Used) Zeitliche Lokalität der Eintrag, auf den am längsten nicht zu­ge­grif­fen wurde
LFU (Least Fre­quent­ly Used) Zu­griffs­häu­fig­keit der Eintrag mit den wenigsten Zugriffen
FIFO (First In, First Out) Rei­hen­fol­ge der Aufnahme der älteste Eintrag, un­ab­hän­gig von der Nutzung

Im Pra­xis­bei­spiel ent­spricht das der Arzt­hel­fe­rin, die auf ihrer be­grenz­ten Ablage während der Be­hand­lung laufend aufräumt: Bereits benutzte Res­sour­cen müssen weichen, neue kommen hinzu. Entfernt sie dabei eine Ressource, die der Arzt kurz darauf noch einmal braucht, kommt es zu einem Cache Miss – sie muss die Ressource erst wieder aus dem Schrank holen.

Neben dem Platz spielt die Ak­tua­li­tät eine Rolle. Viele Caches versehen Einträge mit einer Gül­tig­keits­dau­er (Time to Live, TTL). Nach deren Ablauf gilt ein Eintrag als veraltet und wird beim nächsten Zugriff neu von der Quelle geladen oder dort auf Än­de­run­gen geprüft. Im Web regelt das der Standard HTTP Caching (RFC 9111) etwa über den Header Cache-Control mit Angaben wie max-age.

Bei Caches, über die auch ge­schrie­ben wird, un­ter­schei­det man zudem zwei Verfahren: Beim Write-through werden Än­de­run­gen sofort auch in den da­hin­ter­lie­gen­den Speicher ge­schrie­ben; beim Write-back zunächst nur in den Cache und erst später gesammelt in den Speicher. Write-back ist schneller, birgt aber das Risiko von Da­ten­ver­lust, wenn etwa der Strom ausfällt, bevor die Daten zu­rück­ge­schrie­ben wurden.

Wo befindet sich ein Cache?

Eine Grund­ei­gen­schaft eines Cache ist, dass er „im Ver­bor­ge­nen“ arbeitet. Dieser Umstand spiegelt sich schon im Ursprung des Wortes wider: Das Wort „Cache“ stammt aus dem Fran­zö­si­schen und bedeutet „Versteck“.

Der Cache liegt für Nutzer un­sicht­bar vor dem ei­gent­li­chen Da­ten­spei­cher. Das bedeutet, dass Sie als Nutzer nichts über die internen Ei­gen­schaf­ten des Cache wissen müssen. Sie stellen Anfragen an den Da­ten­spei­cher, ohne zu bemerken, dass diese ei­gent­lich vom Cache be­ant­wor­tet werden.

Wie viele Caches gibt es ty­pi­scher­wei­se?

Innerhalb eines digitalen Systems ist für ge­wöhn­lich eine Reihe von Caches gleich­zei­tig aktiv.

Stellen Sie sich den Zugriff auf eine Webseite vor: Ihr Browser kom­mu­ni­ziert mit einem Server und ruft eine Reihe von Res­sour­cen ab. Bis Ihnen die Inhalte der Seite im Browser angezeigt werden, durch­lau­fen Teile davon ver­mut­lich folgende Caches: Prozessor-Cache, Seiten-Cache des Be­triebs­sys­tems, DNS-Cache und Browser-Cache auf Ihrem Gerät sowie CDN (Content Delivery Network) und Web-Cache auf Ser­ver­sei­te.

Vor- und Nachteile eines Cache

Ob eine Anwendung mit einem Cache aus­ge­stat­tet wird, ent­schei­den in der Regel die Ent­wick­ler. Ein Überblick über die Vor- und Nachteile der Zwi­schen­spei­cher-Lösung:

Vorteil: Enormer Zuwachs an Ge­schwin­dig­keit

Die Ver­wen­dung eines Cache bietet als po­ten­zi­el­len Vorteil einen enormen Zuwachs an Ge­schwin­dig­keit. Eine Be­schleu­ni­gung um einen Faktor von ein­hun­dert ist nicht un­ge­wöhn­lich, wie die Werte in der Tabelle weiter unten zeigen. Die Be­schleu­ni­gung ergibt sich jedoch nur beim wie­der­hol­ten Zugriff auf dieselben Daten. Wie groß der Zugewinn tat­säch­lich ausfällt, variiert daher stark je nach An­wen­dungs­fall und Tref­fer­quo­te.

Vorteil: Last­re­du­zie­rung für das hinter dem Cache liegende System

Da ein Cache viele Anfragen selbst be­ant­wor­tet, wird die Last auf das hinter ihm liegende System deutlich reduziert.

Stellen Sie sich als Beispiel vor, dass eine dy­na­mi­sche HTML-Seite aus einem PHP-Template erzeugt wird: Zur Erzeugung der Seite wird auf eine Datenbank zu­ge­grif­fen. Dieser Zugriff ist ver­gleichs­wei­se aufwendig. Ferner ist es nicht trivial, Da­ten­bank­ser­ver zu skalieren, weshalb der Da­ten­bank­zu­griff als „Bot­t­len­eck“ (zu Deutsch: „Fla­schen­hals“) den Ge­samt­durch­satz des Systems begrenzen kann. In diesem Fall ist es vor­teil­haft, die ge­ne­rier­te HTML-Seite in einem Web-Cache zwi­schen­zu­spei­chern, um die Kapazität des Da­ten­bank­ser­vers für andere Aufgaben zu nutzen.

Nachteil: Cache-In­va­li­die­rung ist schwierig

Der Begriff Cache-In­va­li­die­rung be­zeich­net die Ent­schei­dung darüber, wann zwi­schen­ge­spei­cher­te Daten nicht mehr aktuell sind und erneuert werden müssen. Über­tra­gen auf das Beispiel von oben: Stellt die Praxis auf ein neues Des­in­fek­ti­ons­mit­tel um, steht auf der Ablage womöglich noch die alte Flasche. Die Arzt­hel­fe­rin müsste wissen, dass sie diese aus­tau­schen muss – sonst reicht sie dem Arzt das veraltete Mittel.

Da ein Cache Miss kost­spie­lig ist, sind Caches oft darauf ausgelegt, Daten möglichst lange vor­zu­hal­ten. Das erhöht jedoch das Risiko, dass der Cache Daten aus­lie­fert, die nicht mehr aktuell sind. Dieses Problem ver­schärft sich, wenn mehrere hin­ter­ein­an­der­ge­schal­te­te Caches aktiv sind, etwa Browser-Cache, CDN und Web-Cache. Es kann dann schwierig sein zu bestimmen, wann welche Daten in welchem Cache als nicht mehr aktuell markiert werden sollen.

Liefert ein Cache Daten aus, die nicht mehr aktuell sind, führt dies oft auf der Seite des Anwenders zu seltsamen Problemen: Die besuchte Website hat Dar­stel­lungs­feh­ler oder es er­schei­nen beim Da­ten­ab­ruf Fragmente aus der Ver­gan­gen­heit. Mitunter ist es schwierig, die genaue Herkunft der Probleme zu ermitteln. Als Anwender hilft Ihnen dann meist das Leeren des Cache.

Zitat

„There are only two hard things in Computer Science: cache in­va­li­da­ti­on and naming things.“

„In der In­for­ma­tik gibt es nur zwei schwie­ri­ge Probleme: Cache-In­va­li­die­rung und Namen vergeben.“

Phil Karlton, https://www.mart­in­fow­ler.com/bliki/TwoHard­Things.html

Nachteil: Zu­sätz­li­cher Speicher und mehr Kom­ple­xi­tät

Ein Cache belegt eigenen Speicher – in Hardware als teurer, schneller Speicher auf dem Chip, in Software etwa als Ar­beits­spei­cher oder Fest­plat­ten­platz. Zudem erhöht er die Kom­ple­xi­tät eines Systems: Ent­wick­ler müssen festlegen, was wie lange zwi­schen­ge­spei­chert wird, und Fehler durch veraltete Daten sind schwer zu re­pro­du­zie­ren. Für Daten, die sich ständig ändern oder nur einmal abgerufen werden, lohnt sich ein Cache deshalb kaum.

Welche Arten von Caches gibt es?

Caches bestehen aus Hardware- oder Software-Kom­po­nen­ten. Ein Hardware-Cache ist ein schneller Puf­fer­spei­cher, der die Zu­griffs­zei­ten auf den da­hin­ter­lie­gen­den Da­ten­spei­cher ver­rin­gert. Prin­zi­pi­ell sind Hardware-Caches immer sehr klein im Vergleich zur Ge­samt­grö­ße des be­schleu­nig­ten Da­ten­spei­chers.

In Software im­ple­men­tier­te Caches können dagegen sehr groß werden und mitunter sogar die Größe der ur­sprüng­li­chen Ressource über­tref­fen – etwa dann, wenn mehrere Versionen einer Ressource im Cache liegen.

Die folgende Übersicht zeigt gängige mit Caches versehene Res­sour­cen mit typischen Grö­ßen­ord­nun­gen für die Größe des Cache, die Zu­griffs­zeit auf den Cache und den un­ge­fäh­ren Faktor, um den der Zugriff ohne Zwi­schen­spei­cher langsamer wäre. Die konkreten Werte hängen stark von Hardware, Netzwerk und Anwendung ab.

Ressource Cache Typische Größe des Cache Zu­griffs­zeit mit Cache × langsamer ohne Cache
Haupt­spei­cher (RAM) Level-1-Cache des Pro­zes­sors (Hardware) Dutzende Kilobyte (KB) je Pro­zes­sor­kern Rund eine Na­no­se­kun­de (ns) oder weniger ca. 100–200 ×
Fest­plat­te (HDD) Fest­plat­ten-Cache (Hardware) Hunderte Megabyte (MB) Mi­kro­se­kun­den (µs) ca. 100 × und mehr
Webserver Browser-Cache (Software) Bis zu mehreren Gigabyte (GB) Wenige bis Dutzende Mil­li­se­kun­den (ms) 10–100 ×
Ur­sprungs­ser­ver einer Website CDN-Cache (Software) Petabyte (PB), verteilt auf viele Standorte Dutzende Mil­li­se­kun­den (ms) 2–5 ×

Hardware-Caches

Prozessor-Cache

Ein moderner Prozessor arbeitet un­glaub­lich schnell: Ein Takt­zy­klus dauert bei mehreren Gigahertz Takt­fre­quenz nur Bruch­tei­le einer Na­no­se­kun­de – also einer mil­li­ards­tel Sekunde. Ein Zugriff auf den Haupt­spei­cher dauert dagegen rund 100 Na­no­se­kun­den und ist damit ver­gleichs­wei­se langsam. Aus diesem Grund verfügen moderne Pro­zes­so­ren über eine Hier­ar­chie von Prozessor-Caches:

  • L1-Cache: der kleinste und schnells­te Cache, meist Dutzende Kilobyte pro Kern, oft getrennt für Befehle und Daten
  • L2-Cache: größer und etwas langsamer, bei aktuellen Pro­zes­so­ren ty­pi­scher­wei­se im Bereich von etwa einem bis wenigen Megabyte pro Kern
  • L3-Cache: von mehreren Kernen gemeinsam genutzt, meist Dutzende Megabyte; Pro­zes­so­ren mit ge­sta­pel­tem Cache wie der AMD Ryzen 7 9800X3D kommen auf 96 MB L3-Cache

Ein Cache Hit im L1-Cache ist rund 100- bis 200-mal schneller als ein Zugriff auf den Haupt­spei­cher.

Fest­plat­ten-Cache

Eine klas­si­sche Fest­plat­te (HDD) rotiert mit mehreren Tausend Um­dre­hun­gen pro Minute, üblich sind 5.400 oder 7.200. Der Schreib-Lese-Kopf muss erst zur richtigen Spur bewegt werden und warten, bis der gesuchte Sektor unter ihm vor­bei­kommt. Da es sich um einen me­cha­ni­schen Vorgang handelt, dauert ein Zugriff mehrere Mil­li­se­kun­den und ist damit ver­gleichs­wei­se langsam.

Aus diesem Grund verfügt jede Fest­plat­te über einen eigenen Cache aus schnellem DRAM, bei aktuellen Modellen häufig 256 oder 512 MB. Er dient vor allem als Le­se­puf­fer, der be­nach­bar­te Daten vor­aus­schau­end mitliest, und als Schreib­puf­fer, der Schreib­vor­gän­ge sammelt. Liegen an­ge­frag­te Daten bereits im Cache, entfällt die me­cha­ni­sche Wartezeit, und der Zugriff ist um ein Viel­fa­ches – oft um den Faktor 100 und mehr – schneller.

Auch SSDs nutzen Caches, obwohl sie ohne be­weg­li­che Teile auskommen: Viele Modelle besitzen einen DRAM-Cache, der vor allem die Zu­ord­nungs­ta­bel­le des Con­trol­lers aufnimmt. Güns­ti­ge­re NVMe-SSDs ohne eigenen DRAM greifen dafür auf einen kleinen Teil des Ar­beits­spei­chers des Rechners zurück (Host Memory Buffer). Zu­sätz­lich be­schleu­ni­gen viele SSDs Schreib­vor­gän­ge über einen SLC-Cache, einen Teil des Flash-Speichers, der besonders schnell be­schrie­ben werden kann.

Software-Caches

Seiten-Cache des Be­triebs­sys­tems

Häufig genutzte Dateien – etwa Teile des Be­triebs­sys­tems oder oft geöffnete Programme – hält nicht die Fest­plat­te, sondern das Be­triebs­sys­tem im Ar­beits­spei­cher vor. Dieser Seiten-Cache (engl. „Page Cache“) nutzt freien RAM, um gelesene Da­tei­in­hal­te zwi­schen­zu­spei­chern. Benötigen Programme den Ar­beits­spei­cher selbst, gibt das Be­triebs­sys­tem ihn au­to­ma­tisch wieder frei. Deshalb wirkt der RAM unter Linux, Windows oder macOS oft „voll“, obwohl aus­rei­chend Speicher verfügbar ist.

Browser-Cache

Beim Besuch einer Website werden viele Daten der Seite auf dem Gerät des Besuchers zwi­schen­ge­spei­chert. Neben den ei­gent­li­chen Inhalten gehören dazu ver­schie­de­ne Res­sour­cen wie Bilder, Style­sheets und Ja­va­Script-Dateien. Für ge­wöhn­lich werden viele dieser Res­sour­cen auf mehreren Seiten benötigt. Um das Laden der Seiten zu be­schleu­ni­gen, ist es vor­teil­haft, diese immer wieder be­nö­tig­ten Res­sour­cen im Browser-Cache des lokalen Geräts zu speichern. Wie lange der Browser eine Ressource verwenden darf, bestimmt der Webserver über HTTP-Header wie Cache-Control.

So praktisch der Browser-Cache für das Surfen im Netz ist: Er kann auch Probleme ver­ur­sa­chen – etwa dann, wenn die Ent­wick­ler Än­de­run­gen an einer Ressource der Website vor­ge­nom­men haben, im Browser-Cache aber noch die alte Version der Ressource vorhanden ist. In diesem Fall kann es zu Dar­stel­lungs­feh­lern kommen. Abhilfe schafft dann das Leeren des Browser-Cache oder ein er­zwun­ge­nes Neuladen der Seite, das in vielen Browsern mit [Strg] + [F5] oder [Strg] + [Umschalt] + [R] (macOS: [Cmd] + [Umschalt] + [R]) möglich ist.

Cache und Cookies: Was ist der Un­ter­schied?

Browser-Cache und Cookies werden oft in einem Atemzug genannt, erfüllen aber un­ter­schied­li­che Aufgaben. Der Cache speichert Inhalte einer Website wie Bilder oder Skripte, damit sie schneller laden. Cookies speichern dagegen kleine In­for­ma­tio­nen über Sie oder Ihre Sitzung, etwa einen Login-Status, einen Warenkorb oder Ein­stel­lun­gen. Wenn Sie nur den Cache leeren, bleiben Sie in der Regel weiterhin auf Websites an­ge­mel­det.

Google-Cache: in­zwi­schen ein­ge­stellt

Über die Funktion „Im Cache“ konnten Nutzer lange Zeit eine von Google ge­spei­cher­te Kopie einer Seite aufrufen – auch dann, wenn die ur­sprüng­li­che Website offline war. Diese Funktion gibt es nicht mehr: Google hat die Cache-Links Anfang 2024 aus den Such­ergeb­nis­sen entfernt, seit September 2024 funk­tio­niert auch der Such­ope­ra­tor cache: nicht mehr. Als Be­grün­dung nannte Google, dass Websites heute deutlich zu­ver­läs­si­ger er­reich­bar seien als zu der Zeit, als die Funktion entstand.

Wer ältere Versionen einer Seite sehen möchte, kann auf die Wayback Machine des Internet Archive aus­wei­chen, auf die Google in­zwi­schen im Bereich „Über dieses Ergebnis“ verweist. Genau genommen ist die Wayback Machine al­ler­dings kein Cache, sondern ein Webarchiv: Sie bewahrt Mo­ment­auf­nah­men von Seiten dauerhaft auf, statt sie zur Be­schleu­ni­gung von Zugriffen vor­zu­hal­ten.

DNS-Cache

Das Domain Name System, kurz DNS, ist ein global ver­teil­tes System zur Über­set­zung von Do­main­na­men in IP-Adressen (bzw. umgekehrt). Fragt Ihr Browser etwa nach der Domain ionos.de, liefert das DNS eine oder mehrere IP-Adressen zurück, bei­spiels­wei­se 217.160.86.49.

Bereits be­ant­wor­te­te DNS-Anfragen werden an mehreren Stellen zwi­schen­ge­spei­chert: im Browser, im Be­triebs­sys­tem Ihres Geräts, oft im Router und beim DNS-Resolver Ihres In­ter­net­an­bie­ters. Wird dieselbe Domain erneut auf­ge­ru­fen, steht die IP-Adresse sofort zur Verfügung, ohne dass eine neue Anfrage über das Netz nötig ist. Wie lange ein Eintrag gültig bleibt, legt der Betreiber der Domain über die TTL des je­wei­li­gen DNS-Eintrags fest.

Doch auch die Nutzung des DNS-Cache kann zu Problemen führen – bei­spiels­wei­se, wenn sich durch einen Ser­ver­um­zug die zu einer Domain gehörige IP-Adresse geändert hat, die alte Adresse jedoch noch im lokalen DNS-Cache hin­ter­legt ist. In diesem Fall schlägt der Ver­bin­dungs­auf­bau fehl oder Sie landen auf dem alten Server, bis die TTL ab­ge­lau­fen ist. Abhilfe schafft dann das Löschen des DNS-Cache.

Content Delivery Network (CDN)

Global verteilte Content Delivery Networks (dt. „Inhalte-Aus­lie­fe­rungs-Netzwerke“) halten einen Großteil der Daten beliebter Websites auf so­ge­nann­ten Edge-Servern bzw. Edge Nodes („randnahen Knoten“) vor. Diese spiegeln die Daten am „Rand“ des Internets: Die Knoten sind geo­gra­fisch nahe am Benutzer an­ge­sie­delt und technisch darauf ausgelegt, Daten möglichst schnell aus­zu­lie­fern. Ein CDN fungiert damit als Cache für die Daten der an­ge­schlos­se­nen Websites. Dadurch werden die Zu­griffs­zei­ten ins­be­son­de­re auf Streaming-Angebote und Websites minimiert, und der Ur­sprungs­ser­ver wird entlastet.

Web-Cache

Ein Web-Cache hält Web­do­ku­men­te wie HTML-Seiten, Bilder, Style­sheets oder Ja­va­Script-Dateien auf Ser­ver­sei­te für die wie­der­hol­te Nutzung vor. Moderne Caching-Lösungen wie Varnish und Redis legen häufig benutzte Daten im Ar­beits­spei­cher ab und erzielen damit besonders geringe Ant­wort­zei­ten. Dabei arbeiten sie auf un­ter­schied­li­chen Ebenen: Varnish ist ein HTTP-Cache, der als Reverse Proxy vor dem Webserver sitzt und komplette Antworten zwi­schen­spei­chert. Das Open-Source-Projekt dahinter wird seit 2025/2026 unter dem Namen Vinyl Cache wei­ter­ent­wi­ckelt; „Varnish Cache“ be­zeich­net seither eine darauf ba­sie­ren­de Dis­tri­bu­ti­on des Un­ter­neh­mens Varnish Software. Redis ist dagegen eine In-Memory-Datenbank, die An­wen­dun­gen häufig als Objekt-Cache nutzen, etwa für Er­geb­nis­se von Da­ten­bank­ab­fra­gen oder Sit­zungs­da­ten.

Werden die Daten erneut abgefragt, erfordert die Antwort nur einen sehr schnellen Spei­cher­zu­griff. So werden die Ant­wort­zei­ten drastisch ver­rin­gert und die Last für die hinter dem Cache liegenden Systeme, wie Webserver und Datenbank, reduziert.

Speziell für PHP-An­wen­dun­gen gibt es zudem Caches auf Code-Ebene: OPcache speichert vor­kom­pi­lier­ten PHP-Bytecode im gemeinsam genutzten Ar­beits­spei­cher, sodass Skripte nicht bei jeder Anfrage neu geladen und geparst werden müssen; die Er­wei­te­rung ist seit PHP 5.5 fester Be­stand­teil von PHP. Der früher ver­brei­te­te Al­ter­na­ti­ve PHP Cache (APC) wird nicht mehr wei­ter­ent­wi­ckelt. Sein Nach­fol­ger APCu übernimmt nur noch das Zwi­schen­spei­chern von An­wen­dungs­da­ten.

Tipp: Caching für die eigene Website nutzen

Wenn Sie eine eigene Website betreiben, lohnt es sich, mehrere Cache-Ebenen zu kom­bi­nie­ren: Legen Sie über Cache-Control-Header fest, wie lange Browser statische Dateien wie Bilder, CSS und Ja­va­Script speichern dürfen. Bei Content-Ma­nage­ment-Systemen wie WordPress be­schleu­ni­gen Caching-Plug-ins die Aus­lie­fe­rung, indem sie fertige HTML-Seiten zwi­schen­spei­chern. Achten Sie bei Ihrem Hosting zudem darauf, dass OPcache aktiviert ist – bei aktuellen PHP-Versionen ist das meist der Fall.

Reviewers

Zum Hauptmenü