数据缓存
一、缓存
1、缓存是一种在计算机中广泛用来提高性能的技术。
2、在Web应用程序中,缓存用于在HTTP请求时保留页或者数据,并无须新创建的情况下多次使用他们。
3、目的:节省应用程序处理时间和资源
4、缓存体系有两种:页面输出缓存和应用程序数据缓存
二、页面输出缓存
1、@OutputCache指令:
<%@ OutputCache Duration="60" VaryByParam="none"%>
对于OutputCache指令Duration和VaryByParam两个属性是必须的
2、HttpCachePolicy类:
该类主要包含用于设置缓存特定的HTTP标头的方法和用于控制ASP.NET页面输出缓存的方法
三、页面部分缓存
1、页面部分缓存是指输出缓存页面的某些部分,而不是缓存整个页面内容。
2、实现页面部分缓存有两种机制:控件缓存,缓存后替换
3、在使用Substitution时,首先将整个页面缓存起来,然后将页面中需要动态改变内容的地方用Substitution控件代替即可。
Substitution控件需要设置一个重要属性MethodName,该属性用于获取或者设置当Substitution控件执行时为回调而调用的方法名称。
该方法必须要符合3点:
该方法必须被定义为静态方法。
该方法必须接受HttpContext类型的参数。
该方法必须返回String类型的值。
四、应用程序数据缓存
1、应用程序数据缓存的主要功能是在内存中存储各种与应用程序相关的对象。通常这些对象都需要大量的服务器资源才能创建。
2、应用程序数据缓存由Cache类实现
Cache["Categoryld"]=Request.QueryString["Categoryld"];
3、Cache类的主要方法:
4、检索应用程序缓存对象:有两种方法:
(1)指定键名
string categoryld=(string)Cache["categoryld"];
(2)使用Cache类的Get方法
string categoryld=(string)Cache.Get("categoryld");
五、缓存依赖
1、缓存依赖是实现缓存功能中非常重要的部分。通过缓存依赖,可以在依赖对象(如文件、目录、数据库表等)与缓存对象之间建立一个有效关联。当被依赖对象发生变化时,缓存对象将变得不可用,并被自动从缓存中移除。
2、CacheDependency是实现缓存依赖功能的核心类之一,其主要功能是在ASP.NET应用程序数据缓存对象与文件、缓存键、文件或缓存键的数组或另一个CacheDependency对象之间,建立一种依赖。通过CacheDependency类创建的缓存依赖称为自定义依赖。
3、SQL数据缓存依赖功能的核心是利用sqlCacheDependency类,在应用程序数据缓存对象与SQL Server数据库表,或者SQL Server查询结果之间,建立一种缓存依赖关系。
4、构造函数代码:
构造函数一:
public SqlCacheDependency(SqlCommand sqlcmd);
构造函数二:
public SqlCacheDependency(string databaseEntryName,string tableName);
5、在构造SQL数据缓存依赖对象时,要注意:应用SQL Server时,必须使用构造函数一,在sqlcmd中将涉及相关的SQL查询语句(select),这些语句必须满足以下条件:
(1)必须定义完全限定的表名,包括表所有者的名称,如dbo.Users。
(2)必须在select语句中显示指定列名,不能使用星号(*)通配符来选择表中的所有列。
(3)不能在查询语句中使用聚合函数。
(4)必须为当前数据库启动SQL Server Service Broker。