Clients de cache et cache local (mise en cache d'AppFabric 1.1)
Dans le cadre de l'utilisation des fonctionnalités de mise en cache de Microsoft AppFabric 1.1 pour Windows Server, votre application utilise l'objet DataCache pour stocker des données dans le cache. Cet objet est appelé client de cache. Pour créer un client de cache qui utilise le cache par défaut, utilisez la méthode GetDefaultCache. Pour créer un client de cache qui utilise un cache nommé, utilisez la méthode GetCache.
Notes
Il est recommandé de réduire le nombre d'objets DataCacheFactory créés par votre application prenant en charge le cache afin d'optimiser les performances. Stockez l'objet DataCacheFactory dans une variable accessible à toutes les parties de l'application qui utilisent des clients de cache.
Considérations relatives à la sécurité
Il est vivement conseillé de sécuriser les fichiers de configuration d'application XML utilisés pour spécifier le client de cache. Les noms d'ordinateur des hôtes de cache sont spécifiés dans ce fichier. Toutefois, pour qu'un autre client accède au cluster de cache, il lui faut les autorisations adéquates.
Cache local
Le serveur stocke les objets sous une forme sérialisée dans le cache. Les demandes du client de cache en relation avec un objet du cache sont transmises par le serveur au client via le réseau. Le client de cache désérialise ensuite l'objet pour que celui-ci puisse être utilisé par l'application cliente. Pour accélérer le processus de récupération d'un objet, vous devez activer le cache local. Pour plus d'informations sur l'activation du cache local, consultez la rubrique Activation du cache local d'AppFabric 1.1 ou Activation du cache local (XML).
Lorsque le cache local est activé, le client de cache stocke une référence à l'objet localement. Celle-ci permet de conserver l'objet actif dans la mémoire de l'application cliente. Lorsque l'application demande l'objet, le client de cache commence par vérifier 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 de plusieurs facteurs, tels que le nombre maximal d'objets dans le cache local et la stratégie d'invalidation. Les invalidations pour le cache local sont de deux types : invalidation basée sur un délai d'expiration et invalidation basée sur une notification. Pour plus d'informations, consultez la page Expiration et éviction (mise en cache d'AppFabric 1.1).
Conseil
Une fois les objets stockés dans le cache local, votre application continue à les utiliser jusqu'à leur invalidation, qu'ils soient mis à jour par un autre client sur le cluster de cache ou non. Pour cette raison, il est recommandé d'utiliser le cache local pour les données qui changent rarement.
Cohérence des objets
Les objets mis en cache localement sont stockés dans le même espace de processus que le processus de client de cache. Lorsqu'un client de cache demande un objet mis en cache localement, il reçoit une référence à cet objet plutôt qu'une copie. Il s'agit d'une considération importante pour les applications à plusieurs threads qui peuvent modifier le même objet mis en cache localement à partir de plusieurs threads. Ces applications peuvent utiliser les techniques de codage .NET Framework standard pour synchroniser les modifications des objets à partir de plusieurs threads. Il est également possible de créer des objets DataCacheFactory distincts pour chaque thread. Une telle opération doit être effectuée de façon judicieuse car les inconvénients liés à la création de plusieurs fabriques de cache peuvent en amoindrir les avantages.
Voir aussi
Concepts
Diagramme de l'architecture physique de mise en cache d'AppFabric (mise en cache d'AppFabric 1.1)
Diagramme de l'architecture logique de mise en cache d'AppFabric (mise en cache d'AppFabric 1.1)
Expiration et éviction (mise en cache d'AppFabric 1.1)
Activation du cache local d'AppFabric 1.1
Activation du cache local (XML)
Développement d'un client de cache
2012-03-05