asp.net

asp.net - Diferencia entre HttpRuntime.Cache y HttpContext.Current.Cache?



(3)

El almacenamiento en caché utilizando HttpContext utiliza HttpRuntime.Cache para realizar el almacenamiento en caché real. La ventaja de utilizar HttpRuntime directamente es que siempre está disponible en aplicaciones de consola y en pruebas unitarias.

¿Cuál es la diferencia entre HttpRuntime.Cache y HttpContext.Current.Cache ?


Encuentro los siguientes detalles de http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx

Para el almacenamiento en caché, estudié el uso de HttpContext.Current.Cache pero, después de leer otros blogs, descubrí que el almacenamiento en caché utilizando HttpContext usa HttpRuntime.Cache para hacer el almacenamiento en caché real. La ventaja de utilizar HttpRuntime directamente es que siempre está disponible, por ejemplo, en aplicaciones de consola y en pruebas de unidad.

Usar HttpRuntime.Cache es simple. Los objetos se pueden almacenar en la caché y están indexados por una cadena. Junto con una clave y el objeto a caché, el otro parámetro importante es el tiempo de caducidad. Este parámetro establece el tiempo antes de que el objeto caiga del caché.

Aquí hay un buen enlace para ti.

Otro buen recurso.


Usar HttpRuntime.Cache es fácil de usar que HttpContext.Current.Cache . Como ya se dijo, los objetos se pueden almacenar en la caché y se indexan mediante una cadena. También en la prueba de unidad y en la consola HttpRuntime esto está disponible.

Aquí hay un ejemplo para usar HttpRuntime.Cache .

public static XmlDocument GetStuff(string sKey) { XmlDocument xmlCodes; xmlCodes = (XmlDocument) HttpRuntime.Cache.Get( sKey ); if (xmlCodes == null) { xmlCodes = SqlHelper.ExecuteXml(new dn("Nodes", "Node"), "Get_Stuff_From_Database", sKey); HttpRuntime.Cache.Add(sKey, xmlCodes, null, DateTime.UtcNow.AddMinutes(1.0), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null); } return xmlCodes; }

Lo que este ejemplo realmente hace:

El método GetStuff toma un parámetro de cadena que se utiliza para recuperar un conjunto de elementos de la base de datos. El método primero verifica si un XmlDocument indexado por la clave del parámetro está en la caché. Si lo es, simplemente devuelve este objeto, si no consulta la base de datos. Después de recuperar el documento de la base de datos, lo coloca en la memoria caché. Si se llama nuevamente a este método dentro del tiempo estipulado, recibirá el objeto en lugar de presionar la base de datos.