À propos de In-Role Cache pour Azure Cache

Important

Microsoft recommande tous les nouveaux développements d’utiliser le 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 ?

In-Role Cache prend en charge la possibilité d’héberger des services de mise en cache sur des rôles Azure. Dans ce modèle, le cache fait partie de votre service dans le cloud. Un rôle dans le service cloud est sélectionné pour héberger In-Role Cache. Les instances en cours d'exécution de ce rôle rejoignent les ressources de mémoire pour former un cluster de cache. Ce cluster de cache privé est disponible uniquement pour les rôles qui appartiennent au même déploiement. Il existe deux topologies de déploiement principales pour In-Role Cache : colocalisé et dédié. Les rôles colocalisés hébergent également le code et les services d'autres applications sans mise en cache. Les rôles dédiés sont des rôles de travail qui sont utilisés uniquement pour la mise en cache. Les rubriques suivantes décrivent ces topologies de mise en cache plus en détail.

Pour obtenir une procédure pas à pas de mise en cache de In-Role basée sur des rôles, consultez Guide pratique pour utiliser azure In-Role Cache. Pour obtenir des exemples téléchargeables, consultez Exemples azure In-Role cache.

Concepts du cache In-Role

Cette section fournit une vue d’ensemble de trois concepts clés liés au cache de In-Role en fonction du rôle.

  1. Cluster de cache

  2. Caches nommés

  3. Clients de cache

Cluster de cache

Les rôles Azure ont une ou plusieurs instances. Chaque instance est une machine virtuelle configurée pour héberger le rôle spécifié. Lorsqu’un rôle sur lequel In-Role Cache est activé s’exécute sur plusieurs instances, un cluster de cache est formé. Un cluster de cache est un service de mise en cache distribué qui utilise la mémoire combinée de tous les ordinateurs dans le cluster. Les applications peuvent ajouter et récupérer des éléments à partir du cluster de cache sans identifier l'ordinateur de stockage des éléments. Si la haute disponibilité est activée, une copie de sauvegarde de l'élément est stockée automatiquement sur une autre instance de machine virtuelle.

Notes

Seul un cluster de cache est pris en charge pour chaque service cloud. Il est possible de configurer plusieurs clusters de cache dans un service cloud en spécifiant des comptes de stockage distincts pour chaque rôle. Cette configuration n'est toutefois pas prise en charge.

Lorsque vous activez In-Role Cache sur un rôle Azure, vous spécifiez la quantité de mémoire qui peut être utilisée pour la mise en cache. Dans un scénario colocalisé, vous choisissez un pourcentage de la mémoire disponible sur les machines virtuelles qui hébergent le rôle. Dans un scénario dédié, toute la mémoire disponible sur les machines virtuelles est utilisée pour la mise en cache. La quantité de mémoire disponible reste toutefois inférieure à celle de la mémoire physique sur la machine virtuelle, en raison des besoins en mémoire du système d'exploitation.

Par conséquent, la quantité totale de mémoire de mise en cache dépend de la mémoire de rôle réservée à la mise en cache multipliée par le nombre de rôles. Vous pouvez mettre à l’échelle efficacement la mémoire de mise en cache totale en augmentant ou en diminuant le nombre d’instances en cours d’exécution pour ce rôle.

Avertissement

Lorsque vous effectuez un scale-down des instances en cours d’exécution du rôle qui héberge In-Role Cache, réduisez le nombre d’instances d’au moins trois à la fois. Une fois la modification appliquée, vous pouvez supprimer jusqu'à trois autres instances exécutées. Vous devez répéter cette opération jusqu'à atteindre le nombre requis d'instances exécutées. L'ajout simultané de plus de trois instances provoque l'instabilité du cluster de cache.

Chaque cluster de cache conserve des informations partagées sur l’état d’exécution du cluster dans le stockage Azure. Pendant le développement, vous pouvez utiliser l’émulateur de stockage Azure. Les rôles déployés doivent spécifier un compte de stockage Azure valide. Dans Visual Studio, vous pouvez spécifier le compte de stockage approprié sous l’onglet Mise en cache des propriétés du rôle.

Caches nommés

Chaque cluster de cache inclut au moins un cache nommé default. Avec le cache de In-Role en fonction du rôle, vous pouvez également ajouter des caches nommés supplémentaires. Plusieurs paramètres peuvent être modifiés pour chaque cache. La capture d’écran suivante montre la section Cache nommé Paramètres de l’onglet Mise en cache dans les paramètres de rôle Visual Studio.

Caching Properties for Named Caches

Dans Visual Studio, cliquez sur le bouton Ajouter un cache nommé pour ajouter des caches nommés supplémentaires. NamedCache1NamedCache2exemple précédent, deux caches supplémentaires ont été ajoutés ( et ). Chaque cache a des paramètres différents. Vous pouvez modifier les paramètres en sélectionnant et en modifiant les champs spécifiques dans le tableau.

Les caches nommés offrent davantage de souplesse aux concepteurs d'application. Chaque cache nommé a ses propres propriétés. Par exemple, l'option Haute disponibilité peut être activée pour un cache pour tirer parti de la haute disponibilité. Il est possible que d'autres caches ne requièrent pas ce paramètre et que la haute disponibilité requière deux fois plus de mémoire pour chaque élément en cache. Il est préférable d'utiliser la haute disponibilité sur les seuls caches qui en ont besoin. D'autres scénarios peuvent impliquer l'utilisation de plusieurs caches avec diverses propriétés pour satisfaire les besoins de l'application.

Clients de cache

Un client de cache est un code d'application qui stocke et récupère des éléments à partir du cluster de cache. Avec In-Role Cache sur les rôles, les clients de cache doivent faire partie du même rôle de mise en cache ou être incorporés dans d’autres rôles dans le déploiement. Configurez les clients de cache à l'aide des fichiers de configuration de l'application ou web. Pour plus d’informations, consultez How to: Prepare Visual Studio to Use Azure In-Role Cache. L’exemple suivant montre l’élément dataCacheClient dans un fichier de configuration.

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CachingRole1" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  </dataCacheClient>
</dataCacheClients>

Dans l’exemple précédent, l’élément autoDiscover a un attribut d’identificateur défini CachingRole1sur . Cet identificateur spécifie que le CachingRole1 cache In-Role est activé. Il fournit l'emplacement du serveur de cache. Le client de cache utilise CachingRole1 automatiquement toutes les opérations de mise en cache.

Une fois le client de cache configuré, il peut accéder à tous les caches selon leur nom. NamedCache1'exemple suivant accède au cache et y ajoute un élément.

DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");

Le constructeur DataCache prend deux paramètres : le nom du cache et le nom de la section dataCacheClient . Pour plus d’informations sur le nom du cache, consultez la section précédente sur les caches nommés.

Dans cette section

Voir aussi

Concepts

Cache