Navigation überspringen

Was ist das Zwischenspeichern?

Entwickler und IT-Experten verwenden das Zwischenspeichern, um Schlüssel-Wert-Daten schneller und mit weniger Aufwand im temporären Speicher zu speichern und darauf zuzugreifen, als Daten, die in herkömmlichen Datenspeichern gespeichert sind. Caches sind in mehreren Szenarien mit mehreren Technologien nützlich, z. B. bei der Zwischenspeicherung von Computern mit Arbeitsspeicher (RAM) für zufälligem Zugriff, beim Zwischenspeichern des Netzwerks für die Inhaltsübermittlung, bei einem Webcache für Web multimediale Daten oder einem Cloudcache, um die Stabilität von Cloud-Apps zu verbessern. Entwickler entwerfen häufig Anwendungen, um verarbeitete Daten zwischenzuspeichern, und verwenden sie dann erneut, um Anforderungen schneller zu verarbeiten als in Standarddatenbankabfragen.

Sie können die Zwischenspeicherung verwenden, um die Datenbankkosten zu senken, einen höheren Durchsatz und eine niedrigere Latenz zu erzielen, als die meisten Datenbanken anbieten können, und die Leistung von Cloud- und Webanwendungen steigern.

Wie funktioniert das Zwischenspeichern für Datenbanken?

Entwickler können eine primäre Datenbank durch einen Datenbankcache ergänzen, den sie in der Datenbank oder Anwendung platzieren oder als eigenständige Ebene einrichten können. Obwohl sie normalerweise von einer herkömmlichen Datenbank zum Speichern großer, dauerhafter, vollständiger Datasets abhängig sind, verwenden sie einen Cache zum Speichern vorübergehender Teilmengen von Daten für den schnellen Abruf.

Sie können das Zwischenspeichern mit allen Arten von Datenspeichern verwenden, einschließlich NoSQL-Datenbanken sowie relationalen Datenbanken wie SQL Server, MySQL- oder MariaDB-. Die Zwischenspeicherung funktioniert auch mit vielen spezifischen Datenplattformen wie Azure Database für PostgreSQL, Azure SQL-Datenbank oder Azure SQL Managed Instance. Es wird empfohlen, zu untersuchen, welche Art von Datenspeicherung am besten Ihren Anforderungen entspricht, bevor Sie mit der Konfiguration einer Datenarchitektur beginnen. Sie möchten beispielsweise verstehen, was PostgreSQL ist, bevor Sie es verwenden, um relationale und unstrukturierte Datenspeicher zu kombinieren.

Die Vorteile von Cacheebenen und was ist Redis trotzdem?

Entwickler verwenden Caches auf mehreren Ebenen, die als Cacheebenen bezeichnet werden, um unterschiedliche Datentypen je nach Bedarf in separaten Caches zu speichern. Durch Hinzufügen einer oder mehrerer Cacheebenen können Sie den Durchsatz und die Latenzleistung einer Datenschicht erheblich verbessern.

Redis ist eine beliebte Open Source-Datenstruktur im Arbeitsspeicher, die zum Erstellen leistungsstarker Cacheebenen und anderer Datenspeicher verwendet wird. Eine aktuelle Studie hat gezeigt, dass das Hinzufügen von Azure Cache für Redis zu einer Beispielanwendung Datendurchsatz um über 800 Prozent und verbesserte Latenzleistung um über 1.000 Prozent1.

Caches können auch die Gesamtbetriebskosten (TCO) für eine Datenschicht verringern. Wenn Sie Caches verwenden, um die häufigsten Abfragen zu bedienen und die Datenbanklast zu verringern, können Sie die Notwendigkeit einer Überbereitstellung von Datenbankinstanzen verringern, was zu erheblichen Kosteneinsparungen und einer niedrigeren TCO führt.

Arten der Zwischenspeicherung

Ihre Cachestrategie hängt davon ab, wie Ihre Anwendung Daten liest und schreibt. Ist Ihre Anwendung schreibintensiv, oder werden Daten einmal geschrieben und häufig gelesen? Sind die zurückgegebenen Daten immer eindeutig? Unterschiedliche Datenzugriffsmuster beeinflussen die Konfiguration eines Caches. Zu den gängigen Cachetypen gehören \"cache-aside\", \"read-through\",\"write-through\" und \"write-behind\"/\"write-back\".

Cache-aside

Für Anwendungen mit leseintensiven Workloads verwenden Entwickler häufig ein cachefremdes Programmmuster oder "Side-Cache". Sie finden den Side-Cache außerhalb der Anwendung, der dann eine Verbindung mit dem Cache herstellen kann, um Daten abzufragen und abzurufen, oder direkt mit der Datenbank, wenn sich die Daten nicht im Cache befinden. Während die Anwendung die Daten abruft, werden sie für zukünftige Abfragen in den Cache kopiert.

Sie können einen Sidecache verwenden, um die Anwendungsleistung zu verbessern, die Konsistenz zwischen dem Cache und dem Datenspeicher zu gewährleisten und zu gewährleisten, dass Daten im Cache nicht veralten.

Lese-/Durchschreibcache

Read-Through-Caches halten sich selbst auf dem neuesten Stand, während die Anwendung beim Zwischenspeichern von Schreibvorgängen Daten in den Cache und dann in die Datenbank schreibt. Beide Caches befinden sich in der Datenbank, und die Anwendung behandelt sie als Hauptdatenspeicher.

Read-Through-Caches helfen dabei, Anwendungen zu vereinfachen, bei denen dieselben Daten immer wieder angefordert werden, aber der Cache selbst ist komplexer, während der zweistufige Schreibvorgang Wartezeiten erzeugen kann. Entwickler koppeln die beiden, um die Datenkonsistenz zwischen Cache und Datenbank sicherzustellen, die Latenz beim Durchschreiben des Caches zu verringern und das Aktualisieren des Durchlesecaches zu vereinfachen.

Durch die Zwischenspeicherung von Lese-/Schreibvorgängen können Entwickler Anwendungscode vereinfachen, die Cacheskalierbarkeit erhöhen und die Datenbanklast minimieren.

Write-Behind-/Write-Back-Cache

In diesem Szenario schreibt die Anwendung Daten in den Cache, was sofort bestätigt wird, und dann schreibt der Cache selbst die Daten im Hintergrund zurück in die Datenbank. Write-Behind-Caches, auch als Write-Back-Caches bezeichnet, sind am besten für Workloads mit hohem Schreibaufwand geeignet, und sie verbessern die Schreibleistung, weil die Anwendung nicht auf den Abschluss des Schreibvorgangs warten muss, bevor sie zur nächsten Aufgabe wechselt.

Verteilter Cache im Vergleich zum Sitzungsspeicher

Benutzer verwechseln verteilte Caches häufig mit Sitzungsspeichern, die ähnlich sind, aber unterschiedliche Anforderungen und Zwecke haben. Anstatt einen verteilten Cache zur Ergänzung einer Datenbank zu verwenden, implementieren Entwickler Sitzungsspeicher, bei denen es sich um temporäre Datenspeicher auf Benutzerebene handelt, für Profile, Nachrichten und andere Benutzerdaten in sitzungsorientierten Anwendungen wie Web-Apps.

Was ist ein Sitzungsspeicher?

Sitzungsorientierte Anwendungen verfolgen Aktionen, die Benutzer ausführen, während sie bei den Anwendungen angemeldet sind. Um diese Daten bei der Abmeldung des Benutzers zu erhalten, können Sie sie in einem Sitzungsspeicher behalten, wodurch die Sitzungsverwaltung verbessert, Kosten gesenkt und die Anwendungsleistung beschleunigt wird.

Wie unterscheidet sich die Verwendung eines Sitzungsspeichers vom Zwischenspeichern einer Datenbank?

In einem Sitzungsspeicher werden Daten nicht zwischen verschiedenen Benutzern freigegeben. Während der Zwischenspeicherung können verschiedene Benutzer auf denselben Cache zugreifen. Entwickler verwenden die Zwischenspeicherung, um die Leistung einer Datenbank oder Speicherinstanz zu verbessern, während sie Sitzungsspeicher verwenden, um die Anwendungsleistung zu steigern, indem Sie Daten in den Speicher im Arbeitsspeicher schreiben, wodurch der Zugriff auf eine Datenbank überhaupt nicht mehr erforderlich ist.

Daten, die in einen Sitzungsspeicher geschrieben werden, sind in der Regel kurzlebig, während Daten, die mit einer primären Datenbank zwischengespeichert werden, normalerweise viel länger erhalten bleiben sollen. Für einen Sitzungsspeicher sind Replikation, Hochverfügbarkeit und Dauerhaftigkeit der Daten erforderlich, um sicherzustellen, dass Transaktionsdaten nicht verloren gehen und die Benutzer eingebunden bleiben. Wenn die Daten in einem Seitencache verloren gehen, ist jedoch immer eine Kopie davon in der permanenten Datenbank vorhanden.

Vorteile der Zwischenspeicherung

Verbesserte Anwendungsleistung

Das Lesen von Daten aus einem In-Memory-Cache ist wesentlich schneller als der Zugriff auf Daten aus einem datenträgergesteuerten Datenspeicher. Und mit einem schnelleren Zugriff auf Daten verbessert sich die Anwendungserfahrung insgesamt erheblich.

Verringerte Datenbanknutzung und -kosten

Das Zwischenspeichern führt zu weniger Datenbankabfragen, wodurch die Leistung verbessert und Kosten gesenkt werden, indem die Notwendigkeit zum Skalieren der Datenbankinfrastruktur und verringern der Durchsatzgebühren eingeschränkt wird.

Skalierbare und vorhersagbare Leistung

Eine einzelne Cacheinstanz kann Millionen von Anforderungen pro Sekunde verarbeiten und bietet so einen Durchsatz und eine Skalierbarkeit, die Datenbanken nicht erfüllen können. Das Zwischenspeichern bietet außerdem die Flexibilität, die Sie benötigen, ob Sie ihre Anwendungen und Datenspeicher herunter- oder hochskalieren. Anschließend kann Ihre Anwendung vielen Benutzern gleichzeitig den Zugriff auf dieselben Dateien gestatten, ohne die Last für Back-End-Datenbanken zu erhöhen. Und wenn eine Anwendung häufig Spitzen bei der Nutzung und hohem Durchsatz aufweist, können In-Memory-Caches die Wartezeiten verringern.

Wofür wird die Zwischenspeicherung verwendet?

Ausgabezwischenspeicherung

Die Ausgabezwischenspeicherung hilft dabei, die Webseitenleistung zu steigern, indem der vollständige Quellcode von Seiten wie HTML- und Clientskripts gespeichert wird, die ein Server zum Rendern an Browser sendet. Bei jedem Aufruf der Seite durch einen Benutzer speichert der Server den Ausgabecode im Anwendungsspeicher zwischen. Hiermit wird der Anwendung das Bedienen von Anforderungen ermöglicht, ohne Seitencode auszuführen oder mit anderen Servern zu kommunizieren.

Datenzwischenspeicherung und Datenbankzwischenspeicherung

Die Geschwindigkeit und der Durchsatz der Datenbank können wichtige Faktoren für die Gesamtleistung der Anwendung sein. Die Datenbankzwischenspeicherung wird für häufige Aufrufe von Daten verwendet, die sich nicht häufig ändern, z. B. Preis- oder Bestandsdaten. Dies hilft Websites und Anwendungen dabei, schneller zu laden und gleichzeitig den Durchsatz zu erhöhen und die Latenz beim Datenabruf aus Back-End-Datenbanken zu verringern.

Speichern von Benutzersitzungsdaten

Anwendungsbenutzer generieren häufig Daten, die für kurze Zeiträume gespeichert werden müssen. Ein In-Memory-Datenspeicher wie Redis eignet sich optimal für eine effiziente und zuverlässige Speicherung hoher Volumen von Sitzungsdaten wie Benutzereingaben, Warenkorbeinträgen oder Personalisierungseinstellungen zu geringeren Kosten als Speicher oder Datenbanken.

Nachrichtenbroker und Veröffentlichungs-/Abonnementarchitekturen

Cloudanwendungen müssen häufig Daten zwischen Diensten austauschen, und sie können die Zwischenspeicherung verwenden, um Veröffentlichungs-/Abonnement- oder Nachrichtenbrokerarchitekturen zu implementieren, die die Latenz verringern und die Datenverwaltung beschleunigen.

Anwendungen und APIs

Wie Browser speichern Anwendungen wichtige Dateien und Daten, um diese Informationen bei Bedarf schnell neu zu laden. Zwischengespeicherte API-Antworten beseitigen die Nachfrage oder Last auf Anwendungsservern und Datenbanken, wodurch schnellere Antwortzeiten und eine bessere Leistung erzielt werden.

1Leistungsansprüche basieren auf Daten aus einer von Microsoft in Auftrag gegebenen Studie, die im Oktober 2020 von GigabyteOm durchgeführt wurde. Die Untersuchung hat die Leistung einer Testanwendung unter Verwendung einer Azure-Datenbank mit und ohne Implementierung Azure Cache für Redis als Cachelösung verglichen. Azure SQL-Datenbank und Azure Database für PostgreSQL wurden als Datenbankelement in der Untersuchung verwendet. Mit einer 6 Gb P1 Premium-Instanz von Azure für Redis wurden eine Instanz von Azure SQL-Datenbank mit 2 virtuellen Kernen Gen5 Universell und einer Instanz von Universell Azure Database für PostgreSQL mit zwei virtuellen Kernen verwendet. Diese Ergebnisse wurden mit 8, 16, 24 und 32 vCore Gen5 Universell Instanzen von Azure SQL-Datenbank und 8, 16, 24 und 32 virtuellen Kernen Universell Instanzen von Azure Database für PostgreSQL ohne Azure Cache für Redis verglichen. Die Benchmarkdaten werden aus dem Auslastungstest der GigaOm-Webanwendungsdatenbank übernommen, der eine gängige Webanwendung und eine Back-End-Datenbank simuliert, die durch erhöhende HTTP-Anforderungen ausgelastet wird. Die tatsächlichen Ergebnisse können je nach Konfiguration und Region variieren. Sehen Sie sich die vollständige Studie an.

Fügen Sie Ihrer Anwendung mit einem vollständig verwalteten Redis-Dienst eine flexible Cacheebene hinzu: Erfahren Sie, wie Sie mit Azure Cache für Redis beginnen.

Wenn Sie eine flexible, dateibasierte Zwischenspeicherung für Hochleistungsanwendungen ausführen möchten, lesen Sie Azure HPC Cache.

Können wir Ihnen helfen?