Cache使用總結

2021-04-19 01:46:25 字數 1883 閱讀 1579

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.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,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)

清除就可以用cache.remove("key");方法

3:cache.add方法,用法和insert差不多,區別在於add碰到該key原來有賦過值會失敗,insert則不會,而會替換原有值;add會返回被快取資料項,insert不會

Cache實現方式總結

閱讀了一些開源的cache源 和在公司幾種cache的實現 一些通用的實現方式和資料結構 hash表 支援多執行緒,需要同步的hash table。淘汰演算法 通常是lru,維護乙個雙向的lru鍊錶。記憶體分配方式 是動態增長還是一次分配,記憶體管理通常是多個不同大小的塊,按照最佳適應 最先適應進行...

使用Cache快取Page頁面

使用cache outputcache duration 15 varybypara none 頁面使用cache,cache的有效期為15 seconds 使用 表示,放在page load裡面 cache manager可以控制這個頁面 告訴cache manager,頁面的有效期為當前時間 1...

TP中cache方法使用

cache可以用於select find和getfield方法,以及其衍生方法,使用cache方法後,在快取有效期之內不會再次進行資料庫查詢操作,而是直接獲取快取中的資料,關於資料快取的型別和設定可以參考快取部分。例如,我們對find方法使用cache方法如下 model m user model ...