Was ist Cache? Definition und alle Bereiche, in denen Caching genutzt wird

Affiliate-Hinweis v3.1
Affiliate-Hinweis v3.2 (mobil)

Was ist Cache, und wo wird Caching genutzt? Hier sind die Bereiche von der Hardware bis zum Web in einem Baum zusammengefasst, nach den Einteilungen von Wikipedia, MDN und der offiziellen WordPress-Dokumentation. CPUs, Betriebssysteme, Datenbanken und Browser verwenden alle denselben Namen; was beim Leeren des Caches gelöscht wird, hängt deshalb von der Schicht ab.

Ein Cache legt Daten, die oft gebraucht werden oder bald nötig sind, vorübergehend in einem schnelleren Speicher als dem Original ab und antwortet bei derselben Anfrage mit dieser Kopie statt mit dem Original.

Der Artikel Cache (computing) der englischen Wikipedia teilt Caches in Hardware-Caches wie CPU- und GPU-Caches und Software-Caches wie Festplatten-, Web-, DNS- und Datenbank-Caches. Der Baum unten gruppiert diese Einteilung nach dem Ort, an dem der Cache sitzt; die Web-Caches folgen der Einteilung von MDN in private cache und shared cache.

🗂️ Wo Caches genutzt werden
💻 Ⅰ. Endgeräte
Betriebssystem-CacheFestplatten-Cache · DNS-Cache
Browser-CachePrivate cache des HTTP-Caches
App-Cache auf MobilgerätenVorschaubilder · Sitzungsdaten
🖥️ Ⅱ. Server und Anwendung
Seiten-CacheFertiges HTML (WP Rocket · FastCGI-Cache)
OPcachePHP-Bytecode
Objekt-CacheRedis · Memcached
Cache von Web-FrameworksLaravel · Django
🌐 Ⅲ. Auslieferung · Netzwerk
CDNShared cache des HTTP-Caches
Proxy-CacheForward · Reverse (Varnish)
Netzwerk-CacheARP-Cache · DNS-Resolver-Cache
🗄️ Ⅳ. Datenbank · Speicher
Interner DB-CacheInnoDB-Pufferpool · Shared Buffers
Speicher-CacheFestplatten-Controller · SSD-DRAM
⚙️ Ⅴ. Hardware
CPU-CacheL1 · L2 · L3 · TLB
GPU-CacheTexturen · Shader-Daten
☁️ Ⅵ. Cloud · Virtualisierung
Container-CacheDocker-Layer
Serverless-FunktionenWarm Start
Build-CacheCI/CD-Abhängigkeiten · Build-Ergebnisse

In welcher Reihenfolge Browser-, CDN- und serverseitige Caches eine einzelne WordPress-Anfrage abarbeiten, kannst du im Beitrag Website-Cache & serverseitiger Cache: So funktioniert Caching in WordPress mit einem Simulator nachvollziehen.

Ⅰ. Endgeräte

  • ↳ Client-Side Cache

Caches auf Endgeräten wie PCs und Smartphones lassen sich in Betriebssystem-Cache, Browser-Cache und App-Cache auf Mobilgeräten einteilen.

Betriebssystem-Cache (OS)Gerätespeicher (RAM)
Was gespeichert wirdVon der Festplatte gelesene Daten · Domains und IP-Adressen

Der Festplatten-Cache (Page Cache) hält von der Festplatte gelesene Daten im Speicher und wird vom Kernel des Betriebssystems verwaltet. Der DNS-Cache speichert zuletzt abgefragte Domains und IP-Adressen.

Festplatten-CacheDNS-Cache
Browser-CacheBrowser-Speicher
Was gespeichert wirdHTML · CSS · JS · Bilder · Schriften

Wird dieselbe Ressource erneut angefragt, geht er entweder gar nicht zum Server oder prüft nur, ob sie sich geändert hat. Mit einem Service Worker (Cache API) lässt sich eine Web-App auch offline aus gespeicherten Ressourcen öffnen.

private cacheService Worker
App-Cache auf MobilgerätenApp-Speicher
Was gespeichert wirdVorschaubilder · Teile der Inhalte · Login-Status

Apps mit großen Inhalten speichern empfangene Daten und zuletzt angesehene Listen auf dem Gerät, damit sie dieselben Daten nicht erneut laden.

YouTubeInstagram

Ⅱ. Server- und Anwendungs-Cache

  • ↳ Server-Side Cache

Der serverseitige Cache hängt am Ablauf, mit dem eine Seite erzeugt wird, nachdem die Anfrage beim Server angekommen ist. Die offizielle WordPress-Dokumentation teilt ihn in Caching-Plugins (Seiten-Cache), Objekt-Cache und Server-Cache (Opcode-Caches wie OPcache) ein.

Seiten-CacheFestplatte · Speicher des Servers
Was gespeichert wirdFertige HTML-Seite

Bei derselben Seitenanfrage schickt er die gespeicherte Kopie, ohne PHP auszuführen. Es gibt Caching-Plugins und Webserver-Caches.

WP RocketNginx FastCGI CacheLiteSpeed Cache
OPcacheSpeicher des Servers
Was gespeichert wirdKompilierter PHP-Bytecode

Läuft dieselbe Datei erneut, entfällt das Kompilieren. Seit PHP 5.5 eingebaut.

Opcode-Cache
Objekt-CacheSpeicher des Servers
Was gespeichert wirdAbfrageergebnisse · Sitzungsdaten

Speichert häufig genutzte Daten in einem Speicher im Arbeitsspeicher, damit dieselbe Abfrage nicht wiederholt wird.

RedisMemcached
Cache von Web-FrameworksAnwendung
Was gespeichert wirdTemplates · Routen · Abfrageergebnisse

Web-Frameworks speichern gerenderte Templates und Abfrageergebnisse in ihrem eigenen Cache.

LaravelDjango

Ⅲ. Cache in Auslieferung / Netzwerk-Infrastruktur

Caches in der Netzwerk-Infrastruktur antworten zwischen Besucher und Ursprungsserver mit Kopien und verringern so die physische Entfernung und die Last auf dem Ursprungsserver. Im HTTP-Caching-Standard entsprechen sie dem shared cache, den viele Besucher gemeinsam nutzen.

CDNEdge-Server
Was gespeichert wirdStatische Dateien · Seiten

Liefert aus dem Server, der dem Besucher unter den weltweit verteilten Servern am nächsten ist. Aufbau und Vorteile sind im Beitrag Was ist ein CDN? Gründe für ein CDN und 5 Vorteile beschrieben.

CloudflareAkamaiFastlyQUIC.cloud
Proxy-CacheProxy-Server
Was gespeichert wirdServer-Antworten

Ein Forward Proxy speichert Antworten auf der Seite des Clients, etwa in einem Firmennetz, ein Reverse Proxy vor dem Server.

Varnish CacheNginx als Reverse Proxy
Netzwerk-CacheNetzwerkgeräte · DNS-Resolver
Was gespeichert wirdZuordnung von IP- zu MAC-Adressen · Ergebnisse von DNS-Abfragen

Netzwerkgeräte speichern im ARP-Cache, Provider- und öffentliche DNS-Resolver speichern Abfrageergebnisse für die TTL des Eintrags.

ARP-CacheDNS-Resolver-Cache

Ⅳ. Cache in Datenbank- und Speichersystemen

Weil Festplattenzugriffe langsam sind, halten Datenbanken und Speichergeräte häufig gelesene Daten im Arbeitsspeicher.

Interner Datenbank-CacheSpeicher des DB-Servers
Was gespeichert wirdHäufig gelesene Daten · Indizes

Hält häufig gelesene Daten und Indizes im Speicher. Der Query-Cache von MySQL wurde in 8.0 entfernt; MariaDB hat ihn noch, aber standardmäßig ausgeschaltet.

InnoDB-PufferpoolPostgreSQL Shared BuffersMongoDB WiredTiger
Speicher-CacheSpeicher im Speichergerät
Was gespeichert wirdZuletzt gelesene · geschriebene Daten

Der im Festplatten-Controller eingebaute Speicher und der DRAM in der SSD halten Daten vorübergehend und verringern so die Ein-/Ausgabe-Latenz.

Cache des Festplatten-ControllersSSD · NVMe DRAM

Ⅴ. Cache auf Hardware-Ebene

Hardware-Caches sind schnelle Speicher in CPU und GPU, die Daten schneller verarbeiten als der Hauptspeicher (RAM).

CPU-CacheIm Prozessor
Was gespeichert wirdBefehle · Daten · Adressübersetzungen

L1 gibt es für jeden Kern separat, aufgeteilt in Befehls- und Daten-Cache, L3 teilen sich alle Kerne. Die Speicherverwaltungseinheit (MMU) legt die Ergebnisse der Übersetzung virtueller in physische Adressen im TLB ab.

L1L2L3TLB
GPU-CacheIm Grafikprozessor
Was gespeichert wirdTexturen · Shader-Befehle · Zwischenergebnisse

Erhöht die Verarbeitungseffizienz der GPU bei Spielen, 3D-Grafik und Machine-Learning-Berechnungen.

Ⅵ. Cache in Cloud / Virtualisierung

In Cloud- und Virtualisierungsumgebungen werden Container-Images, Laufzeitumgebungen von Funktionen und Build-Ergebnisse wiederverwendet, um Bereitstellung und Ausführung zu verkürzen.

Container-CacheBuild-Server · Registries
Was gespeichert wirdImage-Layer

Ein Docker-Image besteht aus mehreren Layern; unveränderte Layer werden nicht neu gebaut oder erneut heruntergeladen.

Docker
Serverless-FunktionenCloud-Laufzeitumgebung
Was gespeichert wirdLaufzeitumgebung

Hält die Laufzeitumgebung eines beendeten Aufrufs eine Weile vor und nutzt sie beim nächsten Aufruf wieder, was die Initialisierungszeit (Cold Start) verkürzt (Warm Start).

AWS LambdaGoogle Cloud Functions
Build-CacheCI-Cache-Speicher
Was gespeichert wirdAbhängige Bibliotheken · Kompilierte Ergebnisse

Verkürzt wiederholte Build-Zeiten.

GitHub ActionsGitLab CI

🔢 FAQ & empfohlene Inhalte

Nein. Leert man den Browser-Cache, werden nur die Kopien auf dem Gerät des Besuchers gelöscht. Den Seiten-Cache auf dem Server und die CDN-Kopien leert der Website-Betreiber im Caching-Plugin oder im CDN-Dashboard.

Die erste Anfrage direkt nach dem Leeren geht bis zum Ursprung und antwortet langsamer als sonst. Sobald diese Anfrage die Kopie neu erzeugt hat, sind die folgenden Anfragen wieder normal schnell; das [Preload] von WP Rocket erzeugt die Kopien nach dem Leeren im Voraus.

Unter Windows stehen die Größen von L1-, L2- und L3-Cache im Task-Manager unter [Leistung] → [CPU] unten. Unter Linux findest du dieselben Werte in der Ausgabe des Befehls [lscpu].

💾 Beiträge rund um Cache 10 Beiträge
🗂️ Cache
📋 Cache: Definition und alle Bereiche 📄 Website-Cache & serverseitiger Cache
📋 WP Rocket Anleitung 📝 Zend OPcache 📝 Redis Cache installieren
📝 Was ist ein CDN? 📝 Varnish Cache
📋 WP Rocket Speed-Test 📝 Beispiele für mehr Tempo 📝 Cache- und Optimierungs-Plugins

ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beweisen Sie, dass Sie ein Mensch sind: 6   +   4   =