资源描述:
《数据缓存技术及代码详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.缓存概述 •为什么使用缓存 –应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能 •缓存机制分类介绍 –应用程序缓存 –页输出缓存2.应用程序缓存的机制 •应用程序缓存是由System.Web.Caching.Cache类实现的,缓存实例(Cache对象)是每个应用程序专 用的,并且每个应用只有一个,通过Page类或UserControl类的Cache属性公开 •缓存生存期依赖于应用程序的生存期,当重新启动应用程序后,将重新创建Cache 对象,也就是说缓存数据将被清空3.如何将项添加到
2、缓存中 •添加缓存项 •设置缓存依赖项 •设置缓存过期策略 •设置缓存优先级4.设置缓存依赖项 •为什么要设置依赖项 •依赖项分类 –键依赖项 –文件依赖项 –SQL依赖项 –聚合依赖项 –自定义依赖项 •添加缓存项的文件依赖项 Cache.Insert("FinanceData","CachedItem4", newSystemWebCachingCacheDependency(Server.MapPath("XMLData.xml"))); •添加缓存项的SQL依赖项 –使用SqlCache
3、Dependency对象来创建依赖于数据库表中的记录 –在Web.config文件的caching节点定义缓存使用的数据库名称及连接字符串 –使用代码依赖于该连接对应数据库的某个表的缓存项 Cache.Insert("cacheitem1","CacheItem1", newSqlCacheDependency("AdvWorks","Product"));5.从缓存中删除项时通知应用程序http://qun.81nanchang.cn •CacheItemRemovedCallback委托 –该委托定义编写事件处理程序时使用
4、的签名,当对从缓存中删除项进行响应时会调用此事件处理程序 •CacheItemRemovedReason枚举 – 用于指定删除缓存项的原因6.实例演示(使用CacheDependency监视文件变化) a)新建一个CacheUtil类,来处理Cache的常见操作,代码如下: ViewCodepublicclassCacheUtil{publicstaticvoidAddCache(){vards=newSystem.Data.DataSet();ds.ReadXml(HttpContext.Current.Server.MapPath("~/Employees
5、.xml"));HttpContext.Current.Cache.Add("EmployeeSet",ds,newCacheDependency(HttpContext.Current.Server.MapPath("~/Employees.xml")),DateTime.Now.AddHours(1),Cache.NoSlidingExpiration,CacheItemPriority.High,EmployeeSetCacheItemRemoved);}http://www.qqmy2.compublicstaticvoidEmployeeSetCacheIte
6、mRemoved(stringkey,objectvalue,CacheItemRemovedReasonreason){switch(reason){caseCacheItemRemovedReason.DependencyChanged:AddCache();break;}}} b)修改Global.asax.cs的Application_Start,在网站启动时,添加CacheViewCodevoidApplication_Start(objectsender,EventArgse){//在应用程序启动时运行的代码CacheUtil.AddCache();}
7、 c)修改Default.aspx.cs的Page_LoadViewCodeprotectedvoidPage_Load(objectsender,EventArgse){if(Cache["EmployeeSet"]==null){CacheUtil.AddCache();}vards=(DataSet)Cache["EmployeeSet"];GridView1.DataSource=ds.Tables[0];GridView1.DataBind();} d)效果图: 当修改Employees.xml,保存后,缓存会接到文件