Partager via


Régions et identification à l'aide de balises dans Azure In-Role 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 création et l’utilisation de régions définies par l’utilisateur. Cette fonctionnalité est disponible pour les caches qui résident sur le cache In-Role en fonction du rôle. Une région est un sous-groupe d'éléments mis en cache. Les régions prennent également en charge l'annotation des éléments mis en cache à l'aide de chaînes descriptives supplémentaires appelées balises. Les régions offrent la possibilité d’effectuer des opérations de recherche sur n’importe quel élément balisé de la région concernée.

Éléments à prendre en compte au sujet des régions

Les régions sont facultatives ; si vous souhaitez les utiliser, créez-les explicitement dans du code avec la méthode CreateRegion . Une fois la région créée, vous pouvez ajouter des balises aux objets insérés dans celle-ci. Il existe des surcharges sur les méthodes Add and Put qui acceptent un nom de région. Pour rechercher dans une région des objets avec une balise donnée, utilisez les méthodes GetObjectsByTag, GetObjectsByAnyTag et GetObjectsByAllTags.

En raison des exigences en matière d'architecture de la fonctionnalité de recherche, les objets d'une région sont limités à un serveur de cache unique. Dans un déploiement Azure, cela signifie que l’ensemble de la région réside sur un serveur unique. Si la haute disponibilité est activée, une sauvegarde de la région existe sur un autre serveur. Dans Azure, ces serveurs sont des instances de machines virtuelles du rôle qui héberge In-Role Cache. Ce comportement est différent dans un scénario dans lequel les régions ne sont pas utilisées. Dans ce scénario, les nouveaux éléments situés dans le cache en mémoire distribué sont placés sur l'un des serveurs de cache disponibles.

Avertissement

Une région doit exister en tant qu'entité unique dans l'un des serveurs de cache. Par conséquent, la quantité de mémoire de mise en cache disponible sur n’importe quelle instance de rôle unique doit être supérieure à la plus grande région prévue. Envisagez d'utiliser plusieurs petites régions pour tirer parti des avantages des régions et de l'identification à l'aide de balises, ainsi que des avantages du cache distribué.

Exemples

L'exemple suivant montre comment créer une région nommée Test.

DataCache cache = new DataCache("default");
cache.CreateRegion("Test");

L'exemple suivant montre comment ajouter trois objets à la région Test avec des balises.

List<DataCacheTag> tagList1 = new List<DataCacheTag>()
{ 
    new DataCacheTag("Tag1"),
    new DataCacheTag("Tag2")
};
List<DataCacheTag> tagList2 = new List<DataCacheTag>()
{
    new DataCacheTag("Tag3")
};
cache.Put("Key1", "Value1", tagList1, "Test");
cache.Put("Key2", "Value2", tagList1, "Test");
cache.Put("Key3", "Value3", tagList2, "Test");

L'exemple suivant montre comment rechercher dans la région Test tous les objets incluant la balise Tag1.

foreach (KeyValuePair<string, object> result in 
    cache.GetObjectsByTag(new DataCacheTag("Tag1"), "Test"))
{
    string keyValue = result.Key;
    string objectValue = result.Value.ToString();
}

Voir aussi

Concepts

Fonctionnalités de In-Role Cache dans Azure Cache