Compartir a través de


Caché local 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í?

La caché local es una característica de Microsoft Azure Caché que mejora el rendimiento al reducir las solicitudes de red a las cachés remotas. Microsoft Azure Caché almacena objetos en forma serializada en una caché en memoria que se distribuye a través de varios servidores. Cuando una aplicación solicita un objeto de la memoria caché, se identifica el servidor que almacena ese objeto. Después, el servidor envía el objeto serializado a la aplicación que realiza la solicitud a través de la red. Entonces, la aplicación deserializa el objeto para su uso. Para acelerar el proceso de recuperación de un objeto, habilite la memoria caché local.

Información general acerca de la memoria caché local

Cuando la memoria caché local está habilitada, el cliente de caché almacena una referencia al objeto de forma local. Esta referencia local mantiene el objeto activo en la memoria de la aplicación cliente. Cuando la aplicación solicita el objeto, el cliente de caché comprueba si el objeto se encuentra en la memoria caché local. En caso afirmativo, la referencia al objeto se devuelve inmediatamente, sin contactar con el servidor. Si no existe, el objeto se recupera del servidor. A continuación, el cliente de caché deserializa el objeto y almacena la referencia a este nuevo objeto recuperado en la memoria caché local. La aplicación cliente usa ese mismo objeto.

La duración de un objeto en la memoria caché local depende del número máximo de objetos en la memoria caché local y la política de invalidación. Hay dos tipos de invalidación para la caché local: invalidación basada en tiempo de espera y invalidación basada en notificaciones. Para más información, consulte Expiración y expulsión en Azure In-Role Cache.

Valores de configuración

La memoria caché local se puede habilitar y configurar mediante el archivo de configuración de aplicación o el archivo web.config. Puede agregar un elemento localCache a la sección dataCacheClient . En la tabla siguiente se enumeran los atributos del elemento localCache .

Atributo Descripción

isEnabled

Se establece en true o false para habilitar o deshabilitar la caché local.

Sincronizar

Determina cómo se invalida la caché local. Los valores posibles son TimeoutBased y NotificationBased.

objectCount

Número máximo de objetos que se almacenan en la memoria caché local. El valor predeterminado es 10 000.

ttlValue

Número de segundos que los objetos permanecen en la memoria caché local. El valor predeterminado es 300 segundos.

Un valor de sincronización de TimeoutBased mantiene los objetos almacenados en caché localmente hasta que se alcanza el límite de ttlValue . Un valor de NotificationBased usa notificaciones además del mecanismo basado en el tiempo de expiración. Para usar notificaciones para invalidaciones, deben habilitarse primero las notificaciones para la memoria caché. El intervalo de sondeo para las notificaciones comprueba si los elementos de la memoria caché local han cambiado. Un intervalo de sondeo efectivo para las notificaciones debe ser más corto que el valor ttlValue para que sea efectivo. Se puede usar un elemento de suma, clientNotification, para configurar el intervalo de sondeo para las notificaciones estableciendo el atributo pollInterval en el número de segundo. El valor predeterminado es 300 segundos.

Nota

Las notificaciones son una característica de caché de In-Role que solo se admite en cachés hospedadas en roles de Azure.

Ejemplos

En el ejemplo siguiente se muestra una sección dataCacheClient que usa la caché local con expiración local basada en el tiempo de espera de cinco minutos (300 segundos).

    <dataCacheClient name="default">
      <!-- Other configuration settings for cache -->
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>

En el ejemplo siguiente se muestra la sección dataCacheClient anterior cambiada para usar notificaciones para proporcionar sincronización adicional al sondear cada minuto (60 segundos). Las notificaciones solo se admiten con la caché de In-Role basada en roles.

    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="WebRole1" />
      <localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
      <clientNotification pollInterval="60" />
    </dataCacheClient>

Para descargar un ejemplo que usa la memoria caché local, consulte La API de almacenamiento en caché y el ejemplo de rendimiento.

Consulte también

Conceptos

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