看了微軟課程後的一些記錄。
使用緩衝的情況:要緩衝那些經常被訪問,並且變化不大的資料。緩衝整個應用程式都要使用的設定或對象(但這些設定和對象必須在其生存期內不變化)
二種用於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