Lokaler Cache in Azure In-Role Cache

Wichtig

Microsoft empfiehlt, alle neuen Entwicklungen azure Redis Cache zu verwenden. Aktuelle Dokumentation und Anleitung zum Auswählen eines Azure Cache-Angebots finden Sie unter Welches Azure Cache-Angebot ist für mich geeignet?

Der lokale Cache ist ein Feature von Microsoft Azure Cache, das die Leistung verbessert, indem Netzwerkanforderungen an Remotecaches reduziert werden. Microsoft Azure Cache speichert Objekte in serialisierter Form in einem Speichercache, der über mehrere Server verteilt wird. Wenn eine Anwendung ein Objekt aus dem Cache anfordert, wird der betreffende Server, auf dem sich das Objekt befindet, identifiziert. Dieser Server sendet dann das serialisierte Objekt über das Netzwerk an die anfordernde Anwendung. Daraufhin deserialisiert die Anwendung das Objekt für ihre Zwecke. Aktivieren Sie den lokalen Cache, um den Vorgang des Abrufens eines Objekts zu beschleunigen.

Übersicht über den lokalen Cache

Wenn der lokale Cache aktiviert ist, speichert der Cacheclient lokal einen Verweis auf das Objekt. Dieser lokale Verweis bewirkt, dass das Objekt im Arbeitsspeicher der Clientanwendung aktiv bleibt. Wenn die Anwendung das Objekt anfordert, überprüft der Cacheclient, ob das Objekt im lokalen Cache gespeichert ist. Ist dies der Fall, wird der Verweis auf das Objekt sofort zurückgegeben, ohne eine Verbindung mit dem Server herzustellen. Ist das Objekt nicht vorhanden, wird es vom Server abgerufen. Der Cacheclient deserialisiert das Objekt dann und speichert den Verweis auf dieses neu abgerufene Objekt im lokalen Cache. Die Clientanwendung verwendet das gleiche Objekt.

Die Lebensdauer eines Objekts im lokalen Cache ist von der maximalen Anzahl von Objekten im lokalen Cache und der Invalidierungsrichtlinie abhängig. Es gibt zwei Arten von Ungültigkeit für den lokalen Cache: Timeout-basierte Ungültigkeit und Benachrichtigungsbasierte Ungültigkeit. Weitere Informationen finden Sie unter Ablauf und Eviction in Azure In-Role Cache.

Konfigurationseinstellungen

Der lokale Cache kann mithilfe der Datei web.config oder der Anwendungskonfigurationsdatei aktiviert und konfiguriert werden. Sie können dem DataCacheClient-Abschnitt ein localCache-Element hinzufügen. In der folgenden Tabelle sind die Attribute des localCache-Elements aufgeführt.

attribute BESCHREIBUNG

isEnabled

Wird auf true oder false festgelegt, um den lokalen Cache zu aktivieren bzw. zu deaktivieren.

sync

Legt fest, wie der lokale Cache invalidiert wird. Mögliche Werte sind TimeoutBased und NotificationBased.

objectCount

Die maximale Anzahl von Objekten, die im lokalen Cache gespeichert werden können. Standard: 10000

ttlValue

Die maximale Anzahl von Sekunden, die Objekte im lokalen Cache verbleiben. Der Standardwert ist 300 Sekunden.

Ein Synchronisierungswert von TimeoutBased Objekten wird lokal zwischengespeichert, bis der Grenzwert für ttlValue erreicht ist. Ein Wert von NotificationBased verwendet Benachrichtigung zusätzlich zum timeoutbasierten Mechanismus. Wenn Benachrichtigungen für die Invalidierung verwendet werden sollen, aktivieren Sie Benachrichtigungen für den Cache. Das Abfrageintervall für Benachrichtigungen überprüft, ob sich Elemente im lokalen Cache geändert haben. Ein effektives Abfrageintervall für Benachrichtigungen muss kürzer sein als die ttlValue-Einstellung , die wirksam sein soll. Ein zusatzelement, clientNotification, kann verwendet werden, um das Abfrageintervall für Benachrichtigungen zu konfigurieren, indem das pollInterval-Attribut auf die Anzahl der zweiten festgelegt wird. Der Standardwert ist 300 Sekunden.

Hinweis

Benachrichtigungen sind ein In-Role Cachefeature, das nur in Caches unterstützt wird, die in Azure-Rollen gehostet werden.

Beispiele

Das folgende Beispiel zeigt einen DataCacheClient-Abschnitt , der lokalen Cache mit timeoutbasiertem lokalen Ablauf von fünf Minuten (300 Sekunden) verwendet.

    <dataCacheClient name="default">
      <!-- Other configuration settings for cache -->
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>

Das folgende Beispiel zeigt den vorherigen dataCacheClient-Abschnitt , der geändert wurde, um Benachrichtigungen zu verwenden, um eine zusätzliche Synchronisierung bereitzustellen, indem alle eine Minute (60 Sekunden) abgerufen wird. Benachrichtigungen werden nur mit rollenbasierten In-Role Cache unterstützt.

    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="WebRole1" />
      <localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
      <clientNotification pollInterval="60" />
    </dataCacheClient>

Informationen zum Herunterladen eines Beispiels, das den lokalen Cache verwendet, finden Sie unter " Cache-API" und "Leistungsbeispiel".

Weitere Informationen

Konzepte

Rollencachefunktionen in Azure Cache