Esta documentación está archivada y no tiene mantenimiento.

Acerca de Caché en rol para Caché de Azure

Actualizado: agosto de 2015

ImportantImportante
Microsoft recomienda que todos los desarrollos nuevos utilicen Caché en Redis de Azure. Para obtener la documentación y orientación actuales sobre cómo elegir una oferta de Caché de Azure, consulte ¿Qué oferta de Caché de Azure debo utilizar?

Caché en rol admite la posibilidad de hospedar servicios de almacenar en memoria caché en roles de Azure. En este modelo, la memoria caché forma parte del servicio en la nube. Se selecciona un rol del servicio en la nube para hospedar Caché en rol. Las instancias en ejecución de ese rol combinan recursos de memoria para formar un clúster de caché. Este clúster de caché privado solo está disponible para los roles dentro de la misma implementación. Hay dos topologías de implementación principales para Caché en rol: colocalizada y dedicada. Los roles colocalizados también hospedan otros servicios y códigos de aplicación sin almacenamiento en caché. Los roles dedicados son roles de trabajo que se usan únicamente para almacenar en memoria caché. En los temas siguientes se tratan estas topologías de almacenar en memoria caché con más detalle.

Para consultar un tutorial detallado de Caché en rol basada en roles, consulte Cómo usar caché en rol de Azure. Para obtener muestras descargables, vea Ejemplos de Caché en rol de Azure.

En esta sección se proporciona información general sobre tres conceptos clave relacionados con Caché en rol basada en roles.

  1. Clúster de caché

  2. Cachés con nombre

  3. Clientes de caché

Los roles de Azure tienen una o varias instancias. Cada instancia es una máquina virtual configurada para hospedar el rol especificado. Cuando un rol que tiene Caché en rol habilitada se ejecuta en varias instancias, se forma un clúster de caché. Un clúster de caché es un servicio de almacenamiento en caché distribuido que usa la memoria combinada de todas las máquinas del clúster. Las aplicaciones pueden agregar y recuperar elementos del clúster de caché sin necesidad de saber en qué máquina se almacenan los elementos. Si la alta disponibilidad está habilitada, una copia de seguridad del elemento se almacena automáticamente en una instancia de máquina virtual diferente.

noteNota
Solo se admite un clúster de caché para cada servicio en la nube. Es posible configurar varios clústeres de caché en un servicio en la nube si se especifican cuentas de almacenamiento independientes para cada rol. Sin embargo, no se admite esta configuración.

Cuando se habilita Caché en rol en un rol de Azure, se especifica la cantidad de memoria que se puede usar para el almacenamiento en caché. En un escenario de colocalización, elige un porcentaje de la memoria disponible en la máquinas virtuales que hospedan el rol. En un escenario dedicado, se usa toda la memoria disponible en la máquinas virtuales para el almacenamiento en caché. No obstante, la memoria disponible es siempre menor que la memoria física total de la máquina virtual, debido a los requisitos de memoria del sistema operativo.

Por lo tanto, la cantidad total de memoria de almacenar en memoria caché depende de la memoria del rol reservada para almacenar en memoria caché multiplicada por la cantidad de roles. Puede escalar la memoria total de almacenar en memoria caché horizontal o verticalmente si aumenta o disminuye la cantidad de instancias en ejecución para ese rol.

WarningAdvertencia
Si reduce verticalmente las instancias en ejecución del rol que hospeda Caché en rol, no reduzca el recuento de instancias en más de tres a la vez. Una vez completado el cambio, puede quitar hasta tres instancias en ejecución adicionales; repita hasta alcanzar el número necesario de instancias en ejecución. El escalado horizontal simultáneo de más de tres instancias provoca inestabilidad en el clúster de caché.

Cada clúster de caché mantiene información compartida sobre el estado de tiempo de ejecución del clúster en el almacenamiento de Azure. Durante el desarrollo, puede usar el emulador de almacenamiento de Azure. Los roles implementados deben especificar una cuenta de almacenamiento de Azure válida. En Visual Studio, puede especificar la cuenta de almacenamiento apropiada en la pestaña Caching de las propiedades del rol.

Cada clúster de caché tiene al menos una caché con el nombre default. Con Caché en rol basada en roles, puede agregar también cachés con nombre adicionales. Existen varias opciones de configuración que se pueden cambiar para cada caché. La captura de pantalla siguiente muestra la sección Configuración de caché con nombre de la pestaña Caching de la configuración del rol de Visual Studio.

Propiedades de Caching para memorias caché con nombre

En Visual Studio, haga clic en el botón Agregar caché con nombre para agregar cachés con nombre adicionales. En el ejemplo anterior, se agregaron dos cachés adicionales: NamedCache1 y NamedCache2. Cada caché tiene distinta configuración. Para cambiar la configuración, seleccione los campos específicos de la tabla y modifíquelos.

Las cachés con nombre dan flexibilidad a los diseñadores de aplicaciones. Cada caché con nombre tiene sus propiedades correspondientes. Por ejemplo, una caché puede habilitar Alta disponibilidad para aprovechar la alta disponibilidad. Otras cachés pueden no requerir esa configuración; la alta disponibilidad exige el doble de memoria para cada elemento en caché. Lo mejor es usar los recursos para alta disponibilidad únicamente para las cachés que lo necesiten. Hay otros escenarios similares en los que podrían usarse varias cachés con propiedades diferentes con el objetivo de cumplir con los requisitos de la aplicación.

Un cliente de caché es un código de aplicación que almacena y recupera elementos del clúster de caché. Con Caché en rol en los roles, los clientes de caché deben ser parte del mismo rol de almacenar en memoria caché o deben incorporarse a otros roles de la implementación. Configure los clientes de caché mediante los archivos de configuración de la aplicación o web. Para obtener más información, vea Procedimiento: preparación de Visual Studio para usar Caché en rol de Azure. En el ejemplo siguiente se muestra el elemento dataCacheClient en un archivo de configuración.

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

En el ejemplo anterior, el elemento autoDiscover tiene un atributo identifier establecido en CachingRole1. Este identificador especifica que CachingRole1 tiene Caché en rol habilitada. Indica la ubicación del servidor de caché. El cliente de caché usa CachingRole1 automáticamente en cualquier operación de almacenar en memoria caché.

Una vez que se ha configurado el cliente de caché, puede acceder a cualquier caché por nombre. El ejemplo siguiente accede a la caché NamedCache1 y le agrega un elemento.

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

El constructor DataCache toma dos parámetros: el nombre de la caché y el nombre de la sección dataCacheClient. Para obtener información sobre el nombre de la caché, vea la sección anterior en Cachés con nombre.

Vea también

Conceptos

Caché

Mostrar: