Regiones y etiquetado en Caché en rol de Azure

Importante

Microsoft recomienda todos los nuevos desarrollos que usen Azure Redis Cache. Para obtener documentación actual e instrucciones sobre cómo elegir una oferta de Azure Cache, consulte ¿Qué oferta de Azure Cache es adecuada para mí?

In-Role Cache admite la creación y el uso de regiones definidas por el usuario. Esta característica está disponible para las memorias caché que residen en la memoria caché basada en roles In-Role. Una región es un subgrupo de elementos en caché. Además, las regiones admiten la anotación de elementos en caché con cadenas descriptivas adicionales llamadas etiquetas. Además, ofrecen la posibilidad de realizar operaciones de búsqueda en elementos etiquetados en dicha región.

Consideraciones sobre las regiones

Las regiones son opcionales; Si quiere usarlos, créelos explícitamente en código con el método CreateRegion . Una vez creada una región, puede agregar etiquetas a los objetos que se insertan en dicha región. Hay sobrecargas en los métodos Add y Put que aceptan un nombre de región. Para buscar una región para objetos con una etiqueta determinada, use los métodos GetObjectsByTag, GetObjectsByAnyTag y GetObjectsByAllTags.

Debido a los requisitos de arquitectura de la funcionalidad de búsqueda, los objetos de una región están limitados a un único servidor de caché. En una implementación de Azure, esto significa que toda la región reside en un único servidor. Si se habilita la disponibilidad alta, una copia de seguridad de la región existe en un servidor diferente. En Azure, estos servidores son instancias de máquinas virtuales del rol que hospeda In-Role Cache. Este comportamiento es diferente al del escenario en el que no se usan regiones. En este último, los elementos nuevos en caché en memoria distribuida se colocan en cualquiera de los servidores de caché disponibles.

Advertencia

Una región debe existir como una única entidad en uno de los servidores de caché. Por lo tanto, la cantidad de memoria de almacenamiento en caché disponible en cualquier instancia de rol única debe ser mayor que la región prevista más grande. Puede usar varias regiones más pequeñas para sacar partido de las ventajas que ofrecen las regiones y el etiquetado, así como las ventajas de la memoria caché distribuida.

Ejemplos

El ejemplo siguiente muestra cómo crear una región denominada Test.

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

El siguiente ejemplo muestra cómo agregar tres objetos a la región Test con etiquetas.

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");

El siguiente ejemplo muestra cómo buscar todos los objetos con la etiqueta Test en la región Tag1.

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

Consulte también

Conceptos

Características de Caché en rol en Caché de Azure