Cache總義

作者: Lyn  來源: 博客園  發布時間: 2008-09-25 13:28  閱讀: 7757 次  推薦: 1   原文鏈接   [收藏]  

Cache用法之頁面聲明

<%@ outputCache
Duration
="#ofseconds"
Location="Any|Client|Downstream|Server|None"
VaryByControl="ControlName"
VaryByCustom="browser|customstring"
VaryByHeader="headers"
VaryByParam="Parametername" 
%>


Cache用法之代碼控制
HttpCachePolicy類是專門用來控件Cache的,可以用Response.Cahce來訪問這個類的實例

Response.Cache.SetExpires(DateTime.Now.AddSeceonds(10));
Response.Cache.SetCacheability(HttpCacheablility.Public);
Response.Cache.SetValidUnitlExpires(
true);

-----------------------以上都是緩存頁面的,下面是緩存數據的----------------------------
Cache類的生存周期等于應用程序的生命周期
三種用法
1:存:Cache["key"] = MyData;取:
MyData = Cache["key"];
if(MyData != null)
    use(MyData);
此法存入Cache的數據生命周期等于應用程序生命周期,不支持清除、過期、依賴性等功能。

2:存:
Cache.Insert(
string key,
object value,
CacheDependency dependencies,//依賴,設置緩存有效的依賴性,比如設置和一個文件相關,文件一變,就失效
DateTime absoluteExpireation,  //設置固定的過期時間
TimeSpan slidingExpiration, //設置最后一次訪問后多長時間過期
CachePriority priority, //設置內存不足,緩存自動清除時,緩存的重要性,可不可以清除
CacheItemRemovedCallback onRemoveCallback // 設置在清除時引發的事件
)
Example:

Cache.Insert("Mydata",MyData,new Caching.CacheDependency(Server.MapPah("Mydata.XML")));//設置有效性和一個文件有關
Cache.Insert("Mydata",myData,null,DateTime.Now.AddDays(1),Cache.NoSlidingExpiratin);//兩種過期時間設了其中一種,另一種要設為0,用NoAbsolute(Sliding)Expiration枚舉
Cache.Insert("MyData",myData,null,Cache.NoAbsoluteExpiration,TimeSpan.FromMinutes(10));//不能過一年不能小于0
Cache.Insert("MyData",myData,null,Cache.NoAbsoluteExpiration,TimeSpan.FromMinutes(10),
  Caching.CacheItemPriority.NotRemovable,
null);
 // AboveNormal|BelowNormal|Default|High|Low|Normal|NotRemovable

public void RemovedCallback(string key,object value,CacheItemRemovedReason reason)
{
    
if(reason == CacheItemRemovedReason.DependencyChanged)
        Response.Write(
"文件變了,快去看看");
}

Cache.Insert("Mydata",MyData,new Caching.CacheDependency(Server.MapPah("Mydata.XML"),
  DateTime.Now.AddDays(
1),Cache.NoSlidingExpiration,CacheItemPriority.High,
  new CacheItemRemovedCallback(this.RemovedCallback));

清除就可以用Cache.Remove("key");方法

3:
Cache.Add方法,用法和Insert差不多,區別在于Add碰到該key原來有賦過值會失敗,Insert則不會,而會替換原有值;Add會返回被緩存數據項,Insert不會

1
0
 
標簽:ASP.NET Cache
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()