Acerca de Caché en rol para Caché 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 capacidad de hospedar servicios de almacenamiento en caché en roles de Azure. En este modelo, la memoria caché forma parte del servicio en la nube. Se selecciona un rol dentro del servicio en la nube para hospedar In-Role Caché. Las instancias en ejecución de ese rol unen 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 In-Role Caché: ubicadas conjuntamente y dedicadas. 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 solo se usan para el almacenamiento en caché. En los temas siguientes se describen estas topologías de almacenamiento en caché con más detalle.

Para ver un tutorial paso a paso de In-Role Cache basado en roles, consulte Uso de Azure In-Role Cache. Para ver ejemplos descargables, consulte Ejemplos de Azure In-Role Cache.

Conceptos de caché de In-Role

En esta sección se proporciona información general sobre tres conceptos clave relacionados con la caché de In-Role basada en roles.

  1. Clúster de caché

  2. Cachés con nombre

  3. Clientes de caché

Clúster 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 habilitado In-Role caché 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.

Nota

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.

Al habilitar In-Role Cache 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 almacenamiento en caché depende de la memoria de rol reservada para el almacenamiento en caché multiplicada por el número de roles. Puede escalar o reducir de forma eficaz la memoria total de almacenamiento en caché aumentando o disminuyendo el número de instancias en ejecución para ese rol.

Advertencia

Al reducir verticalmente las instancias en ejecución del rol que hospeda In-Role Cache, reduzca el recuento de instancias por no 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 en tiempo de ejecución del clúster en Azure Storage. Durante el desarrollo, puede usar el emulador de Azure Storage. Los roles implementados deben especificar una cuenta de almacenamiento de Azure válida. En Visual Studio, puede especificar la cuenta de almacenamiento adecuada en la pestaña Almacenamiento en caché de las propiedades del rol.

Cachés con nombre

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

Caching Properties for Named Caches

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.

Clientes de caché

Un cliente de caché es un código de aplicación que almacena y recupera elementos del clúster de caché. Con In-Role Caché en roles, los clientes de caché deben formar parte del mismo rol de almacenamiento en caché o 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 más información, consulte Preparación de Visual Studio para usar Azure In-Role Cache. 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 de identificador establecido en CachingRole1. Este identificador especifica que CachingRole1 tiene habilitada In-Role caché. Indica la ubicación del servidor de caché. El cliente de caché usa CachingRole1 automáticamente en todas las operaciones de almacenamiento en 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 memoria caché, consulte la sección anterior de Cachés con nombre.

En esta sección

Consulte también

Conceptos

Memoria caché