Almacenar en caché datos de la aplicación

Actualización: noviembre 2007

ASP.NET dispone de un mecanismo eficaz y fácil de utilizar para el almacenamiento de objetos cuya creación en memoria requiere una gran cantidad de recursos del servidor. Si se almacenan estos tipos de recursos en la memoria caché se puede mejorar de forma significativa el rendimiento de la aplicación.

La clase Cache implementa el almacenamiento en memoria caché, con instancias de la memoria caché privadas para cada aplicación. El período de duración de la caché está asociado al de la aplicación; cuando se reinicia la aplicación, se vuelve a crear el objeto Cache.

La clase Cache está diseñada de forma que sea fácil de utilizar. Puede colocar los elementos en Cache y después recuperarlos utilizando pares de clave/valor simples. Para obtener ejemplos sobre cómo hacerlo, consulte Cómo: Agregar elementos a caché y Cómo: Recuperar valores de elementos almacenados en caché.

La clase Cache proporciona características muy eficaces que le permiten personalizar cómo y cuánto tiempo se almacenan los elementos en la memoria caché. Por ejemplo, cuando la memoria disponible en el sistema empieza a ser insuficiente, la caché elimina automáticamente elementos que no se utilizan con mucha frecuencia o aquellos de baja prioridad para liberar memoria. A esta técnica se le denomina barrido y es una de las maneras que tiene la memoria caché de asegurarse de que los datos no actualizados no consuman recursos del servidor.

Puede indicarse al objeto Cache que asigne prioridad a determinados elementos sobre otros durante el proceso de barrido. Para indicar la importancia de un elemento puede especificar uno de los valores de enumeración CacheItemPriority al agregar un elemento mediante los métodos Add o Insert.

También puede establecer una directiva de caducidad para un elemento cuando lo agrega a la caché utilizando Add o los métodos Insert. Puede definir el período de duración para un elemento especificando la hora exacta en que el elemento caducará (una caducidad absoluta), utilizando un valor DateTime. O también, puede especificar una caducidad variable utilizando un valor TimeSpan, que le permite especificar el tiempo transcurrido antes de que venza el elemento basándose en la última hora de acceso al archivo. Cuando un elemento caduca, se elimina de la caché. Los intentos de recuperar su valor devolverán null (Nothing en Visual Basic) a no ser que el elemento se agregue de nuevo a la caché.

En el caso de elementos muy variables almacenados en la memoria caché, por ejemplo los que se vean sometidos a actualizaciones periódicas o los que sólo sean válidos durante un tiempo determinado, se puede establecer una directiva de caducidad que los mantenga en la caché mientras su contenido esté actualizado. Por ejemplo, si escribe una aplicación que efectúa el seguimiento de resultados deportivos y obtiene los datos de otro sitio Web, puede almacenar en la caché el resultado de un partido mientras éste no cambie en el sitio Web de origen. En este caso, puede establecer una directiva de caducidad basada en la frecuencia con que el otro sitio Web actualiza los resultados. Es posible escribir código que determine si un resultado de la caché está actualizado. Si no lo está, el código puede leer el resultado del sitio Web de origen y actualizarlo en la memoria caché.

Por último, ASP.NET permite definir la validez de un elemento de la caché basándose en un archivo externo o directorio (dependencia de archivo) o en otro elemento de la caché (dependencia de clave). Si el elemento con la dependencia asociada cambia, se invalida y elimina el elemento almacenado en la memoria caché. Puede utilizar esta técnica para quitar elementos de la memoria caché cuando su origen de datos cambie. Por ejemplo, si escribe una aplicación que procesa datos financieros extraídos de un archivo XML, puede insertar los datos en la caché y mantener una dependencia sobre el archivo XML. Cuando se actualiza el archivo, el elemento se elimina de la caché, la aplicación vuelve a leer el archivo XML y coloca los datos actualizados en la caché.

Nota:

El objeto Cache no tiene ninguna información acerca del contenido de sus elementos. Simplemente mantiene una referencia a esos objetos. También ofrece métodos para hacer un seguimiento de sus dependencias y establecer directivas de caducidad.

Para obtener más información sobre cómo utilizar estas características, vea Cómo: Agregar elementos a caché.

Vea también

Tareas

Cómo: Agregar elementos a caché

Cómo: Recuperar valores de elementos almacenados en caché

Cómo: Eliminar elementos de la caché en ASP.NET

Cómo: Notificar a una aplicación cuando se quita un elemento de la caché

Conceptos

Información general sobre el almacenamiento en caché en ASP.NET

Otros recursos

Lo nuevo en almacenamiento en caché de ASP.NET