Freigeben über


Ablauf und Entfernung (Windows Server AppFabric-Cache)

Zwischengespeicherte Objekte verbleiben in Windows Server AppFabric nicht dauerhaft im Arbeitsspeicher. Zwischengespeicherte Objekte können nicht nur ausdrücklich mithilfe der Methode Remove aus dem Cache entfernt werden, sondern auch ablaufen oder vom Cachecluster entfernt werden.

Ablauf

Durch den Cacheablauf kann der Cachecluster zwischengespeicherte Objekte automatisch aus dem Cache entfernen. Wenn die Methoden Put oder Add verwendet werden, kann ein optionaler Objekttimeoutwert für das betreffende zwischengespeicherte Objekt festgelegt werden, der bestimmt, wie lange das Objekt im Cache gespeichert bleibt. Wenn der Objekttimeoutwert nicht zum Zeitpunkt der Zwischenspeicherung des Objekts bereitgestellt wird, werden die in den Clusterkonfigurationseinstellungen angegebenen Werte für den benannten Cache verwendet, um die Lebensdauer des Objekts im Cache zu ermitteln.

Wenn zwischengespeicherte Objekte aus Parallelitätsgründen gesperrt sind, werden sie selbst dann nicht aus dem Cache entfernt, wenn sie abgelaufen sind. Sobald ihre Sperre aufgehoben wird, werden sie sofort aus dem Cache entfernt, wenn ihre Ablaufzeit überschritten ist.

Zum Verhindern der sofortigen Entfernung beim Aufheben der Sperre angelaufener Objekte unterstützt die Methode Unlock auch das Erweitern des Ablaufs des zwischengespeicherten Objekts. Weitere Informationen zu den unterstützten Parallelitätsmodellen und -methoden finden Sie unter Parallelitätsmodelle (Windows Server AppFabric-Cache) und Parallelitätsmethoden (Windows Server AppFabric-Cache).

Lokale Cacheinvalidierung

Für den lokalen Cache sind zwei sich ergänzende Invalidierungstypen verfügbar: timeoutbasierte Invalidierung und benachrichtigungsbasierte Invalidierung. Ein Beispiel für das programmgesteuerte Aktivieren des lokalen Caches finden Sie unter Aktivieren des lokalen Caches in Windows Server AppFabric. Ein Beispiel für die Verwendung einer Anwendungskonfigurationsdatei zum Aktivieren des lokalen Caches finden Sie unter Aktivieren des lokalen Caches in Windows Server AppFabric (XML).

Tipp

Nachdem Objekte im lokalen Cache gespeichert wurde, verwendet Ihre Anwendung dieser Objekte weiterhin, bis sie invalidiert werden. Dies geschieht unabhängig davon, ob diese Objekte durch einen anderen Client für den Cachecluster aktualisiert wurden. Aus diesem Grund wird der lokale Cache am besten für Daten verwendet, die sich selten ändern.

Timeoutbasierte Invalidierung

Nachdem Objekte in den lokalen Cache heruntergeladen wurden, verbleiben sie dort, bis sie den in den Konfigurationseinstellungen des Cacheclients angegebenen Timeoutwert erreichen. Nachdem dieser Timeoutwert erreicht wurde, werden die Objekte invalidiert, damit das Objekt bei seiner nächsten Anforderung aus dem Cachecluster aktualisiert werden kann.

Benachrichtigungsbasierte Invalidierung

Wenn Ihr Cacheclient den lokalen Cache aktiviert hat, können Sie auch Cachebenachrichtigungen zum automatischen Invalidieren Ihrer lokalen zwischengespeicherten Objekte verwenden. Indem die Lebensdauer dieser Objekte „bei Bedarf“ verkürzt wird, können Sie die Wahrscheinlichkeit verringern, dass Ihre Anwendung veraltete Daten verwendet.

Wenn Sie Cachebenachrichtigungen verwenden, überprüft die Anwendung den Cachecluster in regelmäßigen Intervallen auf neue verfügbare Benachrichtigungen. Dieses Intervall, das als Abfrageintervall bezeichnet wird, beträgt standardmäßig 300 Sekunden. Das Abfrageintervall wird in den Anwendungskonfigurationseinstellungen in Sekundeneinheiten angegeben. Beachten Sie, dass auch bei benachrichtigungsbasierter Invalidierung Timeouts für Elemente im lokalen Cache weiterhin gelten. Auf diese Weise ergänzt die benachrichtigungsbasierte Invalidierung die timeoutbasierte Invalidierung.

Warnung

Damit Ihre Anwendung Benachrichtigungen verwendet, müssen Sie diese für einen benannten Cache aktivieren. Verwenden Sie den Parameter NotificationsEnabled mit den Befehlen New-Cache oder Set-CacheConfig. Weitere Informationen finden Sie unter Verwenden von Windows PowerShell zum Verwalten von Windows Server AppFabric-Cachefeatures.

Entfernung

Damit die Speicherkapazität für den Cache auf jedem Cachehost erhalten bleibt, unterstützt AppFabric LRU-Entfernung (Least Recently Used, selten verwendet). Schwellenwerte, die auch als Grenzwerte bezeichnet werden, werden zur Sicherstellung verwendet, dass der Arbeitsspeicher gleichmäßig auf alle Cachehosts im Cluster verteilt wird.

Wenn der Speicherverbrauch des Cachediensts auf einem Cacheserver den niedrigen Grenzwert überschreitet, beginnt AppFabric mit der Entfernung von Objekten, die bereits abgelaufen sind.

Wenn der Speicherverbrauch den hohen Grenzwert überschreitet, werden Objekte unabhängig davon aus dem Arbeitsspeicher entfernt, ob sie abgelaufen sind, bis der Speicherverbrauch erneut auf den niedrigen Grenzwert sinkt. Nachfolgend zwischengespeicherte Objekte werden ggf. an andere Hosts weitergeleitet, um die optimale Verteilung des Arbeitsspeichers zu gewährleisten.

Angeben von Ablauf- und Entfernungseinstellungen

Das Verhalten bei Ablauf und Entfernung wird auf der benannten Cacheebene in den Clusterkonfigurationseinstellungen konfiguriert. Diese Einstellungen auf Cacheebene können mit dem auf Windows PowerShell basierenden Cacheverwaltungstool konfiguriert werden. Weitere Informationen finden Sie unter Verwenden von Windows PowerShell zum Verwalten von Windows Server AppFabric-Cachefeatures.

Außerdem können Sie die Standardeinstellungen im Cache mit den folgenden Methoden außer Kraft setzen:

  • Die Methoden Add und Put stellen Überladungen zur Verfügung, die das Angeben eines Ablauftimeoutwerts nur für das Objekt ermöglichen, das Sie dem Cache hinzufügen.

  • Die Methoden PutAndUnlock und Unlock stellen Überladungen zur Verfügung, die das Verlängern des Ablaufs eines Objekts nach dem Aufheben seiner Sperre ermöglichen.

  • Mit der Methode ResetObjectTimeout können Sie die Lebensdauer eines Objekts ausdrücklich erhöhen und die Ablaufeinstellungen für den Cache außer Kraft setzen.

Unabhängig von den Ablauf- oder Entfernungseinstellungen werden alle Objekte im Cache entfernt, wenn ein Cachecluster neu gestartet wird. Ihr Anwendungscode muss den Cache aus der Datenquelle erneut laden, wenn die Daten im Cache nicht gefunden werden. Dies wird häufig als ein cachefremdes Programmierschema bezeichnet.

Siehe auch

Konzepte

Diagramm der physischen Windows Server AppFabric-Cachearchitektur
Diagramm der logischen Windows Server AppFabric-Cachearchitektur
Cacheclients und lokaler Cache (Windows Server AppFabric-Cache)
Aktivieren des lokalen Caches in Windows Server AppFabric
Aktivieren des lokalen Caches in Windows Server AppFabric (XML)
Entwickeln eines Cacheclients (Windows Server AppFabric-Cache)

  2011-12-05