数据缓存
数据缓存
数据缓存概述:
缓存是一种在计算机中广泛用来提高性能的技术,它将访问频率高或构造成本高的数据保留在内存中,在wed应用程序上下文中,缓存于HTTP请求时保留页或者数据,并在无需新创建的情况下多次使用它们,一旦程序停止或者重新启动,缓存将被清除。
页面输出缓存:
页面输出缓存作为最简单的缓存形式,将已生成的动静态页面全部内容保存在服务器内存中,当再次请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期。
1. @OutputCache指令
ASP.NET中的输出缓存可以使服务器的内存将处理和显示页面的输出缓存起来。如果是在应用程序中使用页面输出缓存机制,此页面第一次被请求时,页面输出数据就会被缓存,如果再次请求,服务器只把内存中的页面副本发到客户端,就会很大程度上提高应用程序响应时间,同时减少对服务器资源使用。
只要在页面顶部添加一个@OutputCache指令
Duration是缓存时间,单位是秒和VaryByParam是输出形参,都是必需的属性。
2.HttpCachePolicy类:
Response类的Cache属性用于获取页面缓存策略,该属性数据类型是HttpCachePolicy。可以通过Response。Cache来获取HttpCachePolicy实例,进而实现对于当前页面输出缓存的设置,
页面部分缓存
页面部分缓存是指缓存页面的某个部分,而不是整个页面内容,实现页面部分缓存有两种机制,一种是将需要的缓存置于用户控件(。ascx文件)中,并且为用户控件设置缓存功能,这就是控件缓存。另一种是缓存后替换,该方法与控件缓存正好相反,将页面的某一部分设置成不缓存,因此,尽管缓存了整个页面,当再次请求该页面时,将重新处理那些没有设置为缓存的内容。
1.控件缓存:
控件缓存类似于页面输出缓存,他们使用相同的指令@OutputCache。二者使用相同的设置方法,但是也有不同之处。一个设置在普通页面(.aspx)当中,一个设置在用户控制文件(.ascx)当中。二是控件缓存的@OutputCache指令只能设置Duration、VaryByParam、VaryByControl、VaryByCustom、Shared和SqlDependency等六个属性,而页面输出缓存的@OutputCache指令可设置所有属性。
2.缓存后替换
在实际应用中,有时为了提高程序的性能,通常会缓存整个页面。同时需要更新页面上的时间动态数据。这时需使用Substitution控件。
Substitution控件需要设置重要属性MethodName,该属性用于获取Substitution控件执行时为回调而调用的方法名称。必须符合以下三点:
该方法被定义为静态方法。
该方法必须接受HttpContext类型参数。
该方法必须返回string类型的值。
应用程序缓存
应用程序数据缓存的主要功能是在内存中储存各种与应用程序相关的对象。这些对象都需要耗费大量服务器才能创建。
1.Cache类:
应用程序数据缓存有Cache类实现,该类从属于System.Wed.Caching命名空间,其实例对象为每个应用程序所专用。通过Cache类的应用,可实现添加,检索和移除应用程序数据缓存,以及移除缓存项时通知应用程序,当程序启动时,系统自动为程序创建一个实例,该类对象在应用程序生命周期内有效。
在程序后台添加引用:
2.Add方法
add方法是Cache类的重要方法之一。该方法将数据项添加到缓存的同时,还允许为应用程序数据缓存设置有效期,优先级。依赖项等特性。
2.insert方法
insert方法与Add方法有相似之处,两者所实现的功能相同。但是insert方法支持4种重载方式。Add方法必须提供7个参数。
3.检索应用程序对象
由于缓存中存储的信息为易失信息,该信息可能被ASP.NET移除。因此在平日的开发中,通常是首先确定该项是否存在。
指定键名,实现应用程序的检索
使用Get方法,实现应用程序数据缓存对象的检索。