Best Practices für das Caching in ASP.Net

Caching ist eine Statusverwaltungsstrategie, die häufig in ASP.Net angewendet wird, um die Leistung der Anwendung zu verbessern, indem der Ressourcenverbrauch in Ihrem System minimiert wird. Bei ordnungsgemäßer Verwendung kann die Leistung Ihrer Anwendung erheblich verbessert werden, indem die wWb-Seite ganz oder teilweise gespeichert oder sogar die Daten der Anwendung über die HTTP-Anforderungen hinweg gespeichert werden. Durch das Zwischenspeichern kann die Webseite schneller gerendert werden, und die ordnungsgemäße Verwendung des Zwischenspeicherns minimiert oder reduziert Datenbanktreffer oder den Verbrauch der Serverressourcen.

Es gibt drei Arten von Caching in ASP.Net:

  1. Zwischenspeichern der Seitenausgabe
  2. Zwischenspeichern von Seitenfragmenten
  3. Daten-Caching

Zwischenspeichern der Seitenausgabe

Dies ist eine Form des Caching in ASP.Net, bei der eine Kopie Ihrer Webseite im Speichercache gespeichert wird, sodass nachfolgende Anforderungen für dieselbe Webseite direkt aus dem Cache abgerufen werden können. Die zwischengespeicherte Ausgabe wird an die Anwendung gesendet. Dies verbessert die Leistung der Anwendung erheblich. Das folgende Codeausschnitt zeigt, wie Sie das Zwischenspeichern von Seitenausgaben implementieren können.

Mit der Option VaryByParam können Sie die Variablen in der HTTP-Anforderung angeben, für die ein neuer Cache-Eintrag erforderlich wäre. Andere mögliche Optionen sind: VaryByHeader und VaryByCustom. Sie können auch Speicherort und Dauer in der OutputCache-Direktive angeben. Mit diesen können Sie den Speicherort des Caches sowie die Dauer angeben, für die die Webseite zwischengespeichert werden soll.

Zwischenspeichern von Seitenfragmenten

Das Zwischenspeichern von Seitenfragmenten ist eine Caching-Strategie, bei der die Webseite teilweise zwischengespeichert wird - nur Fragmente der Webseite werden zwischengespeichert, nicht die gesamte Webseite. Sie können dieselbe Syntax wie das Zwischenspeichern von Seitenausgaben verwenden. Sie müssen jedoch das OutputCache-Attribut anstelle der Webseite auf ein Benutzersteuerelement anwenden. Das Zwischenspeichern von Fragmenten ist hilfreich, wenn Sie nur Teile Ihrer Webseite zwischenspeichern müssen - normalerweise in Situationen, in denen Ihre Webseite eine Mischung aus allgemeinen und dynamischen Abschnitten enthält. Beispielsweise können Sie eine Webseite haben, die eine Mischung aus Menüelementen und auch bestimmte dynamische Abschnitte enthält, die häufig aus der Datenbank ausgefüllt und aktualisiert werden müssen.

Daten-Caching

ASP.Net macht die Cache-API verfügbar, damit Sie Daten im Cache speichern und später abrufen können. Die Syntax zum Speichern von Daten im Cache mithilfe der Cache-API ist unten angegeben.

Cache["key"] = "value";

Sie können auch die Methoden Hinzufügen oder Einfügen verwenden. Um einen Eintrag aus dem Cache zu entfernen, können Sie die Remove () -Methode der Cache-Klasse verwenden. Mit der Insert () -Methode der Cache-Klasse können Sie die Cache-Abhängigkeit angeben. Die Cache-Abhängigkeit ist eine Strategie, die sicherstellt, dass der Cache sofort neu gefüllt wird, wenn sich die Daten im Datenspeicher (aus dem der Cache gefüllt wurde) ändern. Wenn sich die Daten im Datenspeicher ändern, läuft der Cache ab, was dazu führt, dass der Cache erneut mit den neuesten Daten gefüllt wird. Weitere Informationen hierzu finden Sie in diesem MSDN-Artikel.

Empfohlene Vorgehensweise

Sie sollten so oft wie möglich zwischenspeichern und Daten in jeder Ebene Ihrer Anwendung ordnungsgemäß zwischenspeichern. Wenn Sie das Daten-Caching verwenden, sollten Sie eine geeignete Strategie implementieren, um sicherzustellen, dass die Daten im Cache mit denen im Datenspeicher synchron sind. Sie können verteilte Cache-Manager wie Memcached nutzen, damit Ihre Caching-Strategie auch gut skaliert werden kann und erhebliche Leistungssteigerungen bietet. Mit Memcached können Sie große Datenmengen speichern. Sie sollten sicherstellen, dass Sie nur relativ veraltete Daten zwischenspeichern - es macht keinen Sinn, Daten zwischenzuspeichern, die sich im Laufe der Zeit häufig ändern würden. Außerdem sollten Daten, deren Wiederverwendung unwahrscheinlich ist, nicht im Cache gespeichert werden. Sie sollten SqlDependency oder SqlCacheDependency nicht überbeanspruchen.

Und jetzt lassen Sie uns auch die Nachteile des Caching kennen. Das Cache-Objekt steht nur der aktuellen Anwendungsdomäne zur Verfügung. Wenn Sie also Daten im Cache speichern und über eine Webfarm zugänglich machen möchten, ist dies keine Möglichkeit. Sie müssten verteilten Cache wie Windows Server AppFabric Caching oder andere Frameworks für verteiltes Caching nutzen, damit auf die Daten im Cache in einer Webfarm global zugegriffen werden kann.

Das Caching ist ein leistungsstarker Mechanismus zur Steigerung der Leistung der Anwendung, indem relativ veraltete Daten im Speicher gespeichert werden, damit diese zu einem späteren Zeitpunkt aus dem Cache-Speicher abgerufen werden können. Ich werde in meinen zukünftigen Beiträgen hier mehr zu diesem Thema mit Beispielen aus dem realen Leben diskutieren.