Compartir a través de


Expiración y expulsión para el Servicio de caché administrado 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í?

Microsoft Azure Caché no conserva los objetos almacenados en caché de forma permanente. Además de quitarse explícitamente de la memoria caché mediante el método Remove , los objetos almacenados en caché también pueden expirar o ser expulsados por la memoria caché.

Expiration

La expiración de caché permite a la caché quitar automáticamente los objetos almacenados en caché de esta. Cuando se usan los métodos Put o Add, se puede establecer un valor opcional de expiración de objeto, para cada objeto en caché, que determinará durante cuánto tiempo permanecerá en caché. Si el valor de tiempo de espera del objeto no se proporciona en el momento en que el objeto se almacena en caché, este usa el tiempo de expiración predeterminado. La hora predeterminada de Managed Cache Service es de diez minutos.

La Directiva de expiración funciona junto con la configuración Tiempo (min) para determinar cuándo expiran los elementos en caché. Estos comportamientos se configuran a nivel de la caché con nombre en el Portal de administración en la pestaña Configurar de Caché.

Expiry Policy for Windows Azure Cache Service

Hay tres tipos de directivas de caducidad: Absoluta, Deslizante y Nunca.

Directiva de expiración Descripción

Nunca

La expiración está deshabilitada. Los elementos permanecen en la memoria caché hasta que se expulsan. Cuando se especifica Nunca, Tiempo (min) debe establecerse en 0.

Absolute

El intervalo de expiración especificado por Tiempo (min) comienza cuando se agrega un elemento a la memoria caché. Una vez que el período de tiempo especificado en Tiempo (min) ha transcurrido, el elemento expira.

Deslizante

El intervalo de expiración especificado por Tiempo (min) se reinicia cada vez que se accede a un elemento en la memoria caché. El elemento no expira hasta que el período de tiempo especificado en Tiempo (min) ha transcurrido, después del último acceso al elemento. De este modo, los elementos que se usan con frecuencia se conservan en la memoria caché durante más tiempo.

Absoluto es la directiva de expiración predeterminada y diez minutos es la configuración predeterminada para Tiempo (min). La directiva de expiración se fija para cada elemento de una caché con nombre, pero la hora (min) se puede personalizar para cada elemento mediante sobrecargas Add y Put que tardan un parámetro de tiempo de espera .

Nota

Es importante tener en cuenta el comportamiento de la expiración Deslizante cuando se usa en combinación con caché local. Si un elemento se lee desde la memoria caché local, esta no accede al objeto en la caché. Por lo tanto, es posible que el elemento expire en el servidor, incluso si se está leyendo de forma local.

Cuando los objetos en caché se bloquean con fines de simultaneidad, no se eliminarán de la caché, incluso si ha expirado. Cuando se desbloqueen, se quitarán inmediatamente de la caché si han expirado.

Para evitar la eliminación instantánea cuando se desbloquean objetos caducados, el método Unlock también permite extender la expiración del objeto en caché.

Puede ver el estado y el rendimiento de su caché en la pestaña Supervisar de Caché en el Portal de administración, incluidas las métricas de expulsión y expiración. Para obtener más información, consulte Supervisión del servicio de caché mediante la pestaña Supervisión.

Invalidación de la memoria caché local

Hay dos tipos complementarios de invalidación para la caché local: invalidación basada en el tiempo de espera y invalidación basada en notificaciones.

Sugerencia

Una vez que se han almacenado los objetos en la memoria caché local, la aplicación puede seguir usando estos objetos hasta que se invaliden, independientemente de si otro cliente los ha actualizado o no. Por esta razón, es mejor habilitar la memoria caché local para datos que no se modifican con frecuencia.

Invalidación basada en tiempo de espera

Una vez que los objetos se han descargado a la memoria caché local, permanecen allí hasta que alcanzan el valor de tiempo de espera de objeto especificado en los valores de configuración del cliente de caché. Cuando alcanzan este valor de tiempo de espera, los objetos se invalidan, de modo que pueden actualizarse desde la caché la próxima vez que se solicite.

Invalidación basada en notificación

Si el cliente de caché ha habilitado la memoria caché local, también se pueden usar notificaciones de caché para invalidar automáticamente los objetos almacenados en caché local. Al reducir la vida útil de estos objetos según las necesidades, se puede reducir la posibilidad de que la aplicación use datos obsoletos.

Nota

Las notificaciones están disponibles en las ofertas de caché Standard y Premium, y no están disponibles en la oferta Basic. Para más información, consulte Ofertas de caché para Azure Managed Cache Service.

Cuando se usan notificaciones de caché, la aplicación comprueba con la memoria caché, a intervalos periódicos, si hay nuevas notificaciones disponibles. Este intervalo, denominado intervalo de sondeo, se produce cada 300 segundos de forma predeterminada. El intervalo de sondeo se especifica en unidades de segundos en las opciones de configuración de la aplicación. Tenga en cuenta que, con la invalidación basada en notificación, se siguen aplicando tiempos de espera a los elementos de la memoria caché local. De ese modo, la invalidación basada en notificación es complementaria a la invalidación basada en tiempo de espera.

Para más información y ejemplos, consulte Caché local para Azure Managed Cache Service.

Expulsión

Para mantener la capacidad de memoria disponible para una caché, se admite la expulsión que se haya utilizado más recientemente (LRU). Cuando el consumo de memoria se acerca al tamaño de su oferta de caché, los objetos se expulsan de la memoria, independientemente de si han expirado o no, hasta que se libera la presión de memoria.

Advertencia

Si deshabilita la expulsión, corre el riesgo de que se produzcan limitaciones. En esta condición, la memoria ha superado el umbral, pero no hay posibilidad de subsanar la escasez en memoria. Los clientes que intenten agregar elementos a la memoria caché en este estado recibirán una excepción hasta que se resuelva.

Puede ver el estado y el rendimiento de su caché en la pestaña Supervisar de Caché en el Portal de administración, incluidas las métricas de expulsión y expiración. Para obtener más información, consulte Supervisión del servicio de caché mediante la pestaña Supervisión.

Hay dos opciones de expulsión: Habilitada y Deshabilitada. La expulsión se configura en el nivel de caché con nombre en el Portal de administración, en la pestaña Configurar para Caché, con la configuración predeterminada de Habilitado.

Eviction Policy for Windows Azure Cache Service

Especificar la configuración de la expiración y expulsión mediante código

Los métodos siguientes permiten invalidar los ajustes predeterminados de la memoria caché:

  • Los métodos Add y Put proporcionan sobrecargas que permiten especificar un valor de tiempo de espera de expiración solo para el objeto que agrega a la memoria caché.

  • Los métodos PutAndUnlock y Unlock proporcionan sobrecargas que permiten extender la expiración de un objeto después de desbloquearlo.

  • El método ResetObjectTimeout permite extender explícitamente la duración de un objeto, reemplazando la configuración de expiración de la memoria caché.

Nota

Independientemente de la configuración de expiración o expulsión, los datos en caché no se conservan durante los apagados y errores inesperados del servicio de caché. El código de aplicación debe recargar la memoria caché a partir del origen de datos si los datos no se encuentran en la memoria caché. Esto se denomina frecuentemente modelo de programación cache-aside.

Vea también

Otros recursos

Características del Servicio de caché administrado de Azure