Partager via


Cache local dans Azure In-Role Cache

Important

Microsoft recommande tous les nouveaux développements à l’aide du Cache Redis Azure. Pour obtenir de la documentation et des conseils actuels sur le choix d’une offre Azure Cache, consultez Quelle offre Azure Cache est adaptée à moi ?

Le cache local est une fonctionnalité de Microsoft Azure Cache qui améliore les performances en réduisant les demandes réseau aux caches distants. Microsoft Azure Cache stocke des objets sous forme sérialisée dans un cache en mémoire distribué sur plusieurs serveurs. Lorsqu'une application demande un objet du cache, le serveur qui stocke cet objet est identifié. Il envoie l'objet sérialisé à l'application demandeuse sur le réseau. L'application désérialise ensuite l'objet pour son utilisation. Pour accélérer le processus de récupération d'un objet, activez le cache local.

Présentation du cache local

Lorsque le cache local est activé, le client de cache stocke une référence à l'objet localement. Cette référence locale permet de conserver l'objet actif dans la mémoire de l'application cliente. Lorsque l'application demande l'objet, le client de cache vérifie si celui-ci réside dans le cache local. Si c'est le cas, la référence à l'objet est immédiatement renvoyée sans que le serveur soit contacté. Sinon, l'objet est récupéré sur le serveur. Le client de cache désérialise alors l'objet et stocke la référence à ce nouvel objet récupéré dans le cache local. L'application cliente utilise ce même objet.

La durée de vie d'un objet dans le cache local dépend du nombre maximal d'objets dans le cache local et de la stratégie d'invalidation. Il existe deux types d’invalidation pour le cache local : l’invalidation basée sur le délai d’attente et l’invalidation basée sur les notifications. Pour plus d’informations, consultez Expiration et éviction dans le cache In-Role Azure.

Paramètres de configuration

Le cache local peut être activé et configuré à l'aide du fichier de configuration d'application ou web.config. Vous pouvez ajouter un élément localCache à la section dataCacheClient. Le tableau suivant répertorie les attributs de l’élément localCache .

Attribut Description

Isenabled

Définissez sur true ou false pour activer ou désactiver le cache local.

Synchronisation

Détermine la manière dont le cache local est invalidé. Les valeurs possibles sont TimeoutBased et NotificationBased.

objectCount

Nombre maximal d'objets à stocker dans le cache local. La valeur par défaut est 10000.

ttlValue

Nombre de secondes pendant lesquelles l'objet est conservé dans le cache local. La valeur par défaut est 300 secondes.

Une valeur de synchronisation des TimeoutBased objets mis en cache localement jusqu’à ce que la limite ttlValue soit atteinte. La valeur NotificationBased utilise des notifications en plus du mécanisme basé sur les délais d'expiration. Pour utiliser des notifications pour l'invalidation, activez les notifications pour le cache. La fréquence d'interrogation pour les notifications vérifie si des éléments du cache local ont été modifiés. Un intervalle d’interrogation efficace pour les notifications doit être plus court que le paramètre ttlValue pour être efficace. Un élément supplémentaire, clientNotification, peut être utilisé pour configurer l’intervalle de sondage pour les notifications en définissant l’attribut pollInterval sur le nombre de secondes. La valeur par défaut est 300 secondes.

Notes

Les notifications sont une fonctionnalité de cache In-Role prise en charge uniquement dans les caches hébergés sur des rôles Azure.

Exemples

L’exemple suivant montre une section dataCacheClient qui utilise le cache local avec l’expiration locale basée sur le délai d’expiration de cinq minutes (300 secondes).

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

L’exemple suivant montre la section dataCacheClient précédente modifiée pour utiliser des notifications pour fournir une synchronisation supplémentaire en interrogeant toutes les 60 secondes. Les notifications sont uniquement prises en charge avec le cache de In-Role en fonction du rôle.

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

Pour télécharger un exemple qui utilise le cache local, consultez l’exemple d’API de mise en cache et de performances.

Voir aussi

Concepts

Fonctionnalités de In-Role Cache dans Azure Cache