Cache-Speicher, auch bekannt als Zwischenspeicher, ist eine Hardware- oder Softwarekomponente, die temporäre Daten in einer Computerumgebung speichert. Ein Cache ist ein schnellerer Speicherbereich, der verwendet wird, um die Leistung beim Zugriff auf kürzlich oder häufig verwendete Daten zu verbessern. Die im Cache gespeicherten Daten werden vorübergehend auf einem Speichermedium abgelegt, das lokal für den Client zugänglich und vom Hauptspeicher getrennt ist. Caches werden häufig von Zentralprozessoren (CPUs), Anwendungen, Webbrowsern und Betriebssystemen verwendet.
Cache-Speicher wird eingesetzt, da der große oder der Hauptspeicher mit den Anforderungen der Benutzer nicht Schritt halten kann. Caching reduziert die Datenzugriffszeiten, verringert Latenzen und verbessert die Ein-/Ausgabe (I/O). Da fast die gesamte Arbeitslast von Anwendungen auf I/O-Operationen basiert, verbessert das Caching die Anwendungsleistung.
Wenn ein Client versucht, auf Daten zuzugreifen, prüft er zuerst den Cache. Wenn die Daten dort gefunden werden, spricht man von einem Cache-Treffer. Der Prozentsatz der Versuche, die zu einem Cache-Treffer führen, wird als Cache-Trefferrate bezeichnet.
Angeforderte Daten, die nicht im Cache gefunden werden – ein sogenannter Cache-Fehler – werden aus dem Hauptspeicher abgerufen und in den Cache kopiert. Welche Daten aus dem Cache entfernt werden, um Platz für neue Daten zu schaffen, hängt vom Caching-Algorithmus, dem Caching-Protokoll und dem verwendeten System ab.
Webbrowser wie Safari, Firefox und Chrome verwenden Browser-Caches, um die Leistung häufig besuchter Websites zu verbessern. Wenn ein Benutzer eine Website besucht, werden die angeforderten Dateien im Cache für diesen Browser im Computerspeicher des Benutzers gespeichert.
Um eine zuvor besuchte Seite abzurufen, bezieht der Browser die meisten benötigten Dateien aus dem Cache, anstatt erneut auf den Webserver zuzugreifen. Dieser Ansatz wird als Cache-Lesen bezeichnet. Der Client-Browser kann Daten schneller aus dem Cache lesen, als er die Dateien erneut von der Website laden kann.
Cache-Speicher ist aus mehreren Gründen wichtig:
- Die Verwendung von Caches reduziert die Latenz für aktive Daten. Dies erhöht die Leistung eines Systems oder einer Anwendung.
- Die Verlagerung von I/O in den Cache reduziert I/O-Operationen auf den externen Speicher und entlastet das Storage-Array.
- Daten können in herkömmlichen Speicher-Arrays oder externen Speichern persistent bleiben. Dies gewährleistet Datenkonsistenz und -integrität durch Funktionen wie Snapshots, die im Speicher gespeichert werden.
- Flash-Speicher, der für einen Teil der Arbeitslast verwendet wird, profitiert von geringeren Latenzen. Dies trägt zu einer effizienten Nutzung der Speicherkosten bei.
Cache-Speicher ist entweder in die CPU integriert oder als Chip auf dem Mainboard eingebettet. Bei neueren Geräten besteht die einzige Möglichkeit, den Cache-Speicher zu erhöhen, darin, das Mainboard und die CPU auf die neueste Generation aufzurüsten. Ältere Mainboards verfügen möglicherweise über leere Steckplätze, die zur Erweiterung des Cache-Speichers verwendet werden können.
Cache-Speicher wird zum Speichern temporärer Dateien verwendet, wobei Hardware- und Softwarekomponenten zum Einsatz kommen. Ein Beispiel für einen Hardware-Cache ist der CPU-Cache. Dies ist ein kleiner Speicherbereich auf dem Prozessor eines Computers, der zum Speichern kürzlich oder häufig verwendeter grundlegender Computerbefehle verwendet wird.
Viele Anwendungen und Softwareprogramme verfügen ebenfalls über einen eigenen Cache. Diese Art von Cache speichert temporär Daten, Dateien oder Anweisungen, die sich auf die Anwendung beziehen, um einen schnellen Zugriff zu ermöglichen.
Webbrowser sind ein typisches Beispiel für einen Anwendungscache. Wie bereits erwähnt, verfügen Browser über einen eigenen Cache, um Informationen aus früheren Browsersitzungen für die Verwendung in zukünftigen Sitzungen zu speichern. Benutzer, die ein YouTube-Video erneut ansehen möchten, können dieses Video schneller laden, da der Browser auf das Video aus dem Cache zugreift, in dem das Video aus der vorherigen Sitzung gespeichert wurde.
Viele andere Systeme verwenden Caches, darunter:
- Betriebssysteme, in denen häufig verwendete Anweisungen und Dateien gespeichert werden;
- Content Delivery Networks, in denen Informationen serverseitig gespeichert werden, um eine schnellere Bereitstellung von Websites zu ermöglichen;
- Domain Name Systeme, in denen sie zum Speichern von Informationen verwendet werden können, die zur Übersetzung von Domainnamen in Internet Protocol-Adressen verwendet werden; und
- Datenbanken, in denen sie die Latenz bei Datenbankabfragen reduzieren können.
Caching bietet eine Reihe von Vorteilen, darunter die folgenden:
- Leistung: Das Speichern von Daten im Cache ermöglicht es Computern, schneller zu laufen. Beispielsweise beschleunigt der Browser-Cache, der Dateien aus früheren Browsersitzungen speichert, den Zugriff in späteren Sitzungen. Datenbank-Caches beschleunigen den Datenabruf, der andernfalls viel Zeit und Ressourcen zum Herunterladen benötigen würde.
- Offline-Arbeit: Caches ermöglichen es Anwendungen auch, ohne Internetverbindung zu funktionieren. Anwendungscaches bieten schnellen Zugriff auf kürzlich oder häufig verwendete Daten. Der Cache bietet jedoch möglicherweise nicht Zugriff auf alle Funktionen der Anwendung.
- Ressourceneffizienz: Neben Geschwindigkeit und Flexibilität hilft Caching physischen Geräten, Ressourcen zu schonen. Beispielsweise spart der schnelle Zugriff auf den Cache Akkuleistung.
Caching hat aber auch Nachteile, wie zum Beispiel:
- Datenbeschädigung: Caches können beschädigt werden und die gespeicherten Daten unbrauchbar machen. Datenbeschädigungen können dazu führen, dass Anwendungen wie Browser abstürzen oder falsche Daten anzeigen.
- Leistung: Caches sind in der Regel kleine temporäre Speicher. Wenn sie zu groß sind, können sie zu Leistungseinbußen führen. Sie können auch Speicherplatz beanspruchen, den andere Anwendungen benötigen könnten, was sich negativ auf die Anwendungsleistung auswirkt.
- Veraltete Informationen: Anwendungscaches zeigen manchmal alte oder veraltete Informationen an. Dies kann zu Fehlfunktionen der Anwendung oder zur Rückgabe irreführender Informationen führen. Wenn eine Website oder Anwendung im Internet aktualisiert wird, spiegelt die Verwendung der im Cache gespeicherten Version aus der vorherigen Sitzung die Aktualisierung nicht wider. Dies ist kein Problem bei statischen Inhalten, sondern bei dynamischen Inhalten, die sich innerhalb oder zwischen Sitzungen ändern.