ASP.net中的缓存

看了微软课程后的一些记录。 


使用缓存的情况:要缓存那些经常被访问,并且变化不大的数据。缓存整个应用程序都要使用的设置或对象(但这些设置和对象必须在其生存期内不变化)

 

二种用于WEB应用的缓冲技术:输出缓冲和数据缓冲

输出缓冲:把一次请求所产生的动态输出保存于内存中。

状态:如果没有使用缓存,状态随着数据而变,

       如果使用缓存,状态根据缓存设置的时间再变。

Response.Cache.SetExpires(DateTime.Now.AddSeconds(10));  //缓存时间为10

Respones.Cache.SetCacheability(HttpCacheability.Public);  //任何人都可以访问缓存。

或者在页面html头加上:<%OutPutCache Duration="10" VaryByParm="None"%>效果是一样的。

 

数据缓冲:可以缓存任何数据

  使用:Cache["UserName"]="MeMe";

Response.Write(Cache["UserName"]);

注意,Cache不能通过下标访问,如Cache[0]

 缓存删除:Cache.Remove("UserName");

 缓存变量的添加:Cache.Add(); Cache.Insert()

 Insert来增加缓存灵活,为什么呢,因为Insert缓存的时候,可以增加数据依赖,就是说,缓存的依赖项变了,缓存则会重建。

Insert(Key,value,dependencies,absoluteExpiration,slidingExpiration,priority,priorityDecay,onRemoveCallBack);

可以看到insert缓存可控制的参数也相当多,得到的缓存也相当的灵活。

 

缓存失效(替换)的情况

1.腐烂搜索:当内存紧张时,缓存机制会找出不常用或不重要的对象,清出缓存。

2.到期控制:指定对象的生存周期。指定的时间可以是绝对的,也可以是相对的。

3.文件和键值的依赖:从外部文件或其它缓存键值是否改变,来决定本身键值是否有效。

 

比如,依赖某个文件:Cache.Insert("DataCach5",dv1,new CacheDependency(server.MapPath("customl.xml"); //此缓存依赖customl.xml

posted @ 2007-04-15 22:05  shipfi  阅读(193)  评论(0编辑  收藏