Der Cache: Was es ist und wie es funktioniert

Was ist ein Cache?

Der Cache: Was es ist und wie es funktioniert

In digitalen Systemen wird kontinuierlich auf Daten zugegriffen, beispielsweise von einer Datenbank, einem Webserver oder einer Festplatte. Der Zugriff auf die Daten nimmt immer Zeit in Anspruch , daher ist es ratsam, sie so weit wie möglich zu reduzieren. Dadurch können pro Zeiteinheit mehr Zugriffe verarbeitet werden. Eine gute Benutzererfahrung hängt auch davon ab, wie schnell ein Server reagiert.

Ein Cache reduziert die Zugriffszeit auf Daten, auf die mehrmals zugegriffen werden muss, erheblich, weshalb dieser Puffer von fast allen Systemen und Anwendungen verwendet wird. Hier erklären wir, woraus genau diese Technologie besteht, welche Vor- und Nachteile sie hat und welche Arten von Caches existieren.

Index
  1. Was ist ein Cache?
  2. Was ist der Zweck eines Caches?
  3. Wie funktioniert ein Cache?
    1. Grundriss eines Caches
    2. Wo befindet sich der Cache?
    3. Wie viele Caches gibt es normalerweise?
  4. Vor- und Nachteile von Caches
    1. Vorteil: enorme Geschwindigkeitssteigerung
    2. Vorteil: Reduzierte Belastung des Systems hinter dem Cache
    3. Nachteile: Der Cache ist schwer ungültig zu machen
  5. Welche Arten von Caches gibt es?
    1. Hardware-Caches
      1. Prozessor-Cache
      2. Festplatten-Cache
    2. Software-Caches
      1. Browser-Cache
      2. Google Page Cache
      3. DNS-Cache
      4. Content Delivery Network (CDN)
      5. Web-Cache

Was ist ein Cache?

Ein Cache ist eine Art digitaler Puffer , in dem die Daten gespeichert werden, sobald sie für den späteren Zugriff abgerufen wurden. Wenn die Daten erneut angefordert werden, kann die Abfrage direkt aus dem Cache beantwortet werden, ohne dass die Anwendung selbst kontaktiert werden muss. Ein typischer Anwendungsfall sind Webbrowser, die über einen eigenen Cache verfügen, um vorübergehend einige Website-Inhalte zu speichern. Wenn Sie die Seiten später erneut besuchen, werden sie schneller geladen, da die Daten direkt aus dem Cache und nicht vom Server abgerufen werden.

Definition

Cache – Cache ist ein Puffer , der Daten enthält, auf die mehrmals zugegriffen wird und die einen schnelleren Abruf ermöglichen. Caches sind eine transparente Ebene zwischen dem Benutzer und der tatsächlichen Datenquelle. Das Zwischenspeichern von Daten wird als Zwischenspeichern bezeichnet .

Um zu erklären, wie ein Cache funktioniert, nehmen wir eine Analogie aus der Medizin: Stellen Sie sich vor, der Zahnarzt fragt seinen Assistenten während einer Zahnbehandlung oder Operation nach einer Ressource wie einem Skalpell, einem Desinfektionsmittel oder einem Verband. Wenn die Ressource bereit ist , kann der Assistent sofort auf die Anfrage antworten. Wenn Sie es nicht haben, muss der Assistent in den Medikamentenschrank schauen, um die Ressource an den Arzt zu liefern. Nachdem der Kliniker es verwendet hat , lässt der Assistent die Ressource für einen schnelleren späteren Zugriff bereit .

Ressourcen werden nicht völlig unabhängig verwendet: Wenn der Arzt nach einem Desinfektionsmittel fragt, benötigt er mit Sicherheit Gaze. Um eine Nadel zu benutzen, benötigen Sie einen Faden. Der Assistent verfügt über die erforderlichen Ressourcen, um die Zugriffszeit während der Verwendung zu minimieren .

Wie Sie gesehen haben, ist es ein sehr nützliches und äußerst häufiges Verfahren, häufig benötigte Ressourcen immer zur Hand zu haben oder die verwendeten Ressourcen zu gruppieren. In der digitalen Welt werden alle diese verwandten Prozesse unter dem Begriff Caching zusammengefasst .

Was ist der Zweck eines Caches?

Der Hauptzweck des Caches besteht darin, die Zugriffszeit auf wichtige Daten zu reduzieren. Zu den als wichtig erachteten Daten gehören:

  1. Häufig verwendete Daten – Für diese wäre es Zeitverschwendung, sie immer aus einem langsameren Speicher laden zu müssen. Stattdessen werden sie aus dem Cache geliefert, was schneller ist.
  2. Zu generierende komplexe Daten : Einige Daten sind das Ergebnis einer intensiven Rechenverarbeitung oder müssen aus verschiedenen Quellen kombiniert werden. In diesen Fällen ist es zweckmäßig, die bereitgestellten Daten für die zukünftige Verwendung zwischenzuspeichern.
  3. Daten, die zusammen verwendet werden sollen : In diesem Fall wäre es nicht effizient, die Daten nur auf Anfrage zu laden. Stattdessen ist es sinnvoll, die Daten im Cache zusammenzuhalten.
See also  Jekyll: Der statische Web Builder, der auf GitHub gehostet wird

Wie funktioniert ein Cache?

Hier erklären wir detailliert, wie ein Cache funktioniert. Unter anderem beschreiben wir die grundlegende Funktionsweise des Puffers und wo er sich befindet.

Grundriss eines Caches

  1. Eine Ressource wird von dem System oder Programm angefordert , das über einen Cache-Speicher verfügt.
  2. Wenn sich die Ressource bereits darin befindet, wird sie von hier geliefert. Dies wird als Cache-Treffer bezeichnet, dh als Cache-Treffer .
  3. Wenn sich die Ressource nicht darin befindet, wird sie zuerst vom zugrunde liegenden System geladen und dann bereitgestellt. Dieser Fall wird als Miss-Cache bezeichnet , oder ich cache Miss .
  4. Wenn dieselbe Ressource in Zukunft erneut angefordert wird, wird sie als Cache-Treffer aus dem Cache geliefert .
Betrieb eines Caches am Beispiel eines Webcaches.
Der Betrieb eines Caches am Beispiel eines Webcaches

Das Bild zeigt das grundlegende Schema : Ein Client fordert eine Ressource vom Server an (1). Bei einem Cache-Treffer befindet sich die Ressource bereits im Cache und wird sofort an den Client übermittelt (2). Im Falle eines Cache-Fehlers fehlt die angeforderte Ressource und daher wird das zugrunde liegende System vom Server (in diesem Fall einer Datenbank) angefordert (2). Sobald die Ressource verfügbar ist (3), wird sie an den Client geliefert (4) und zur späteren Verwendung zwischengespeichert.

Wo befindet sich der Cache?

Eine grundlegende Eigenschaft von Caches ist, dass sie auf versteckte Weise funktionieren . Diese Tatsache spiegelt sich bereits im Ursprung des Wortes wider: Das Wort Cache stammt aus dem Französischen und bedeutet “versteckt”.

Im Gegensatz zur tatsächlichen Datenspeicherung ist der Cache für den Benutzer nicht sichtbar. Dies bedeutet, dass Sie als Benutzer nichts über die internen Eigenschaften eines Caches wissen sollten. Wenn Sie Anforderungen an den Datenspeicher stellen , stellen Sie nicht fest, dass diese tatsächlich aus dem Cache stammen.

Wie viele Caches gibt es normalerweise?

In einem digitalen System sind normalerweise immer mehrere Caches aktiv.

Stellen Sie sich vor, Sie greifen auf eine Website zu: Der Browser kommuniziert mit einem Server und greift auf eine Reihe von Ressourcen zu. Bevor Ihnen der Inhalt der Seite in Ihrem Browser angezeigt wird, durchlaufen wahrscheinlich Teile davon die folgenden Caches: die Prozessor-Caches, die System-Caches, die Browser-Caches auf Ihrem Gerät und das CDN (Content Delivery Network) und das Web-Cache auf der Serverseite.

Vor- und Nachteile von Caches

Die Tatsache, dass eine Anwendung mit einem Cache ausgestattet ist, liegt grundsätzlich in den Händen des Entwicklers. Hier fassen wir die Vor- und Nachteile einer Cache-Lösung zusammen .

Vorteil: enorme Geschwindigkeitssteigerung

Die Verwendung eines Caches hat den potenziellen Vorteil, dass die Geschwindigkeit erheblich erhöht wird. Es ist nicht ungewöhnlich, eine Beschleunigung um den Faktor hundert zu erreichen. Diese Beschleunigung tritt jedoch nur auf, wenn wiederholt auf die Daten zugegriffen wird, und die tatsächliche Beschleunigung variiert je nach Fall stark.

Vorteil: Reduzierte Belastung des Systems hinter dem Cache

Da der Cache Daten sehr schnell liefert, wird die Belastung des zugrunde liegenden Systems erheblich reduziert.

Stellen Sie sich als Beispiel eine dynamische HTML-Seite vor, die aus einer PHP-Vorlage generiert wurde: Um die Seite anzuzeigen, greifen Sie auf eine Datenbank zu. Dieser Zugriff erfordert einen relativ großen Aufwand. Darüber hinaus ist das Skalieren von Datenbankservern nicht trivial und kann zu Engpässen beim Datenbankzugriff führen , die die Gesamtsystemleistung einschränken können. In diesem Fall ist es angebracht, die generierte HTML-Seite in einem Webcache zu speichern, um die Kapazität des Datenbankservers für andere Aufgaben zu nutzen.

See also  Finden Sie den Hosting-Anbieter, der am besten zu Ihrem Projekt passt

Nachteile: Der Cache ist schwer ungültig zu machen

Geplanter Termin

“In der Informatik gibt es nur zwei schwierige Dinge: Cache-Ungültigmachung und Benennung von Dingen”.
(Beim Rechnen gibt es nur zwei schwierige Probleme: den Cache ungültig machen und Dinge benennen?).

Phil Karlton, www.martinfowler.com/bliki/TwoHardThings.html

Der Begriff Cache-Ungültigmachung bezieht sich auf den Fall , dass entschieden wird, dass die Cache-Daten nicht mehr aktuell sind und aktualisiert werden müssen. Denken Sie an die vorherige Analogie: Der Assistent hilft dem Arzt, indem er Ressourcen zur Verfügung stellt, die bereits für die spätere Verwendung verwendet werden. Da der verfügbare Speicherplatz jedoch begrenzt ist, räumt der Assistent ihn während des Vorgangs ständig ab. Bereits verwendete Ressourcen müssen beiseite gelegt und neue hinzugefügt werden. In einigen Fällen kann der Adjutant eine Ressource zurückziehen, die der Arzt noch benötigt. In diesem Fall wird das Cache-Miss- Konzept verwendet : Der Assistent muss Zeit und Mühe investieren, um die erforderliche Ressource zu finden.

Da Cache-Fehler teuer sind, besteht die beste Caching- Strategie darin, sie nach Möglichkeit zu vermeiden. Dies kann jedoch zu veralteten Daten aus dem Cache führen. Dieses Problem wird verschärft, wenn mehrere aktive und hierarchisch benachbarte Caches vorhanden sind. Es kann schwierig sein zu bestimmen, wann die Daten im Cache als aktuell markiert werden sollen.

Wenn ein Cache Daten liefert, die nicht mehr aktuell sind, treten beim Benutzer häufig Probleme auf: Auf der besuchten Website werden Anzeigefehler angezeigt oder beim Abrufen der Daten werden alte Fragmente angezeigt . Manchmal ist es nicht einfach, die genaue Ursache des Problems zu finden. In diesem Fall wird empfohlen, den Cache zu leeren.

Welche Arten von Caches gibt es?

Caches bestehen aus Hardware- oder Softwarekomponenten. Ein Hardware-Cache ist ein schneller Puffer, der die Zugriffszeiten auf den zugrunde liegenden Datenspeicher reduziert. Grundsätzlich sind Hardware-Caches im Vergleich zur Gesamtgröße des beschleunigten Speichers immer sehr klein.

Stattdessen können die in der Software implementierten Caches sogar größer sein als die zugrunde liegende Ressource. Dies ist insbesondere dann der Fall, wenn sich mehrere Versionen einer Ressource in einem Cache befinden.

Hier ist eine Zusammenfassung der gemeinsamen Ressourcen gezeigt Caching, einschließlich der Größe des Caches , die Zugriffszeit auf sie und ein Hinweis darauf, wie viel es den Zugriff auf Ressourcen ungepufferte nehmen würde.

Ressource Zwischenspeicher Cache-Größe Zwischengespeicherte Zugriffszeit × langsamste Zeit ohne Cache
Hauptspeicher Level 1 Cache (Hardware) Dutzende Kilobyte (KB) Weniger als eine Nanosekunde (ns) 200 ×
Festplatte Motherboard-Cache (Hardware) Dutzende Megabyte (MB) Hunderte von Nanosekunden (ns) 100 ×
Browser Browser-Cache (Software) Mehrere Gigabyte (GB) Dutzende Millisekunden (ms) 10-100 ×
Websites CDN, Google Page Cache, Wayback-Maschine (Software) Tausende Terabyte (Petabyte, PB) Weniger Sekunden 2-5 ×

Hardware-Caches

Prozessor-Cache

Ein moderner Prozessor arbeitet unglaublich schnell. Prozesse auf dem Chip erfordern nur Bruchteile von Nanosekunden, dh Milliardstel Sekunden! Im Gegensatz dazu ist der Zugriff auf den Hauptspeicher vergleichsweise langsam: Er dauert einige hundert Nanosekunden. Aus diesem Grund haben moderne Prozessoren eine Hierarchie von Prozessor-Caches .

Ein Cache-Treffer aus dem schnellsten Prozessor-Cache, der als Level 1-Cache oder L1-Cache ( Level 1-Cache ) bezeichnet wird, ist etwa 200-mal schneller als der Zugriff auf den Hauptspeicher.

See also  Kontaktformular in WordPress: Plugin-Vergleich

Festplatten-Cache

Eine Festplatte dreht sich mit mehreren tausend Umdrehungen pro Minute. Der Lese- / Schreibkopf durchläuft die Platten und liest die Daten nacheinander. Als physischer Prozess ist der Zugriff auf eine Festplatte vergleichsweise langsam.

Aus diesem Grund verfügt jede Festplatte über einen eigenen kleinen Cache . Auf diese Weise müssen zumindest die am häufigsten verwendeten Daten , z. B. Teile des Betriebssystems, nicht jedes Mal mit entsprechendem Aufwand von der Festplatte gelesen werden.

Mit dem Festplatten-Cache können Sie wichtige Daten etwa 100-mal schneller laden. Dies macht sie verfügbar? Sofort? für den Benutzer.

Software-Caches

Browser-Cache

Beim Besuch einer Website werden viele der Seitendaten vorübergehend auf dem Gerät des Besuchers gespeichert. Dazu gehören neben dem eigentlichen Inhalt auch Ressourcen wie Bilder, Stylesheets und JavaScript-Dateien . Im Allgemeinen werden viele dieser Ressourcen auf mehreren Seiten benötigt. Damit die Seiten schneller geladen werden können, ist es vorteilhaft, diese im Browser-Cache des lokalen Geräts zu speichern.

Browser-Caches sind zwar sehr praktisch zum Surfen im Internet, können aber auch Probleme verursachen. Beispielsweise kommt es manchmal vor, dass Entwickler Änderungen an einer Ressource auf der Website vornehmen, der Browser-Cache jedoch weiterhin die alte Version der Ressource enthält . In diesem Fall können Anzeigefehler auftreten. Um dies zu beheben, können Sie den Browser-Cache leeren.

Google Page Cache

Die Funktion? Zwischengespeichert? Google speichert die Seiten vieler Websites . Dies bedeutet, dass auf die Seiten zugegriffen werden kann, auch wenn die ursprüngliche Website offline ist. Der Status der Seiten entspricht dem Datum der letzten Googlebot-Indizierung.

DNS-Cache

Das Domain Name System, bekannt als DNS, ist ein System, das weltweit zur Übersetzung von Internetdomains in IP-Adressen verwendet wird (oder umgekehrt). DNS gibt eine IP-Adresse für einen Domainnamen zurück. Für die Domäne ionos.es wird beispielsweise die IP-Adresse 217.160.86.33 zurückgegeben .

Bereits an DNS beantwortete Abfragen werden lokal im DNS-Cache des Geräts selbst gespeichert, sodass jede Auflösung immer genauso schnell ist.

Die Verwendung des DNS-Cache kann jedoch auch Probleme verursachen, z. B. wenn sich die zu einer Domäne gehörende IP-Adresse aufgrund eines Serverwechsels geändert hat, die alte Adresse jedoch weiterhin im lokalen DNS-Cache zwischengespeichert ist. In diesem Fall schlägt die Verbindung zum Server fehl. Dies wird durch Löschen des DNS-Cache gelöst.

Content Delivery Network (CDN)

Content Delivery Networks (Content Distribution Networks), die weltweit implementiert sind, speichern einen Großteil der Daten der beliebtesten Websites in den sogenannten Edge-Knoten oder Peripherieknoten. Diese Randknoten spiegeln die Daten an der? Kante? aus dem Internet. Die Knoten befinden sich lokal in der Nähe des Benutzers und sind so konzipiert, dass die Daten so schnell wie möglich bereitgestellt werden. Ein CDN fungiert als Cache für die Daten auf den darin enthaltenen Websites und minimiert die Zugriffszeiten, insbesondere für Streaming- Anbieter und Websites.

Web-Cache

Ein Webcache enthält Webdokumente wie HTML-Seiten, Bilder, Stylesheets oder JavaScript-Dateien zur wiederholten Verwendung. Moderne Web-Caches wie Varnish und Redis speichern häufig verwendete Daten im RAM, was zu stark verkürzten Antwortzeiten führt.

Wenn die Daten erneut abgefragt werden, erfordert die Antwort nur einen sehr schnellen Speicherzugriff . Dies reduziert die Antwortzeiten und die Belastung der zugrunde liegenden Cache-Systeme wie Webserver und Datenbank erheblich. Andere bekannte Web-Caches sind OPcache und der alternative PHP-Cache (APC).

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *