步步為營 79 快取

2022-08-14 20:54:19 字數 2440 閱讀 6488

快取cache,一種空間換取時間的技術,適用於經常訪問,不常修改的資料.

1 寫入快取

1.1 方法一 cache["message"]="ab";

1.2 方法二 cache.insert("message","ab");

1.3 其他過載 insert(string key, object value, cachedependency dependencies, datetime absoluteexpiration, timespan slidingexpiration, cacheitempriority priority, cacheitemremovedcallback onremovecallback);

引數:   key:用於引用該物件的快取鍵。

value: 要插入快取中的物件。

dependencies: 該項的檔案依賴項或快取鍵依賴項。 當任何依賴項更改時,該物件即無效,並從快取中移除。 如果沒有依賴項,則此引數包含 null。

absoluteexpiration:所插入物件將到期並被從快取中移除的時間。  如果使用絕對到期,則 slidingexpiration 引數必須為 system.web.caching.cache.noslidingexpiration。

slidingexpiration: 最後一次訪問所插入物件時與該物件到期時之間的時間間隔。如果使用可調到期,則 absoluteexpiration 引數必須為 system.web.caching.cache.noabsoluteexpiration。

priority:該物件相對於快取中儲存的其他項的成本,由 system.web.caching.cacheitempriority 列舉表示。 該值由快取在退出物件時使用;具有較低成本的物件在具有較高成本的物件之前被從快取移除。

onremovecallback: 在從快取中移除物件時將呼叫的委託(如果提供)。 當從快取中刪除應用程式的物件時,可使用它來通知應用程式。

1.4 快取移除的4個原因

cacheitemremovedreason:

removed = 1, system.web.caching.cache.remove(system.string) 方法呼叫從快取中移除的。

expired = 2,從快取移除該項的原因是它已過期。

underused = 3, 之所以從快取中移除該項,是因為系統要通過移除該項來釋放記憶體。

dependencychanged = 4, 從快取移除該項的原因是與之關聯的快取依賴項已更改。

2 例子  

2.1 demo   

using

system;

using

system.collections.generic;

using

system.linq;

using

system.web;

using

system.web.ui;

using

system.web.ui.webcontrols;

using

system.web.caching;

namespace

cachetest

else

}//根據委託構造方法

private

void removecache(string key, object

value, cacheitemremovedreason reason)}}

}

12.2 頁面快取

duration表示快取時間,以秒為單位,超過這個時間則快取失效

varybyparam=「id」,表示對於相同頁面的不同的id引數進行單獨快取。如果有多個確定快取的引數,則將引數名用分號隔開即可,比如varybyparam=「id;number」.如果想讓任何不同的查詢字串都建立不同的快取,則設定varybyparam="*"

這個快取是在伺服器快取的,不是在客戶端,因為客戶端還不斷向伺服器提交的請求的,只不過伺服器看到有快取就沒有再執行頁面類。

2.3 檔案快取依賴(當頁面被訪問時,從文字檔案中讀取資料)

步步為營 50 事務

說明 比較常用 1 事務的四大特性 1.1 原子性atomicity 乙個事務中包含的多個sql語句,要麼同時成功,要麼同時失敗.1.2 一致性consistency 事務必須使資料庫從從乙個一致性狀態變成另外乙個一致性狀態.銀行轉賬 1.3 隔離性 isolation 各個事務執行互不干擾 鎖 1...

io nio socket步步為營(三)NIO

原理 運用reactor模式 selector是核心 分發器a multiplexor of selectablechannel objects。能檢測任意個註冊過的channel上的事件,並分發事件,內部實現不用考慮,封裝的好處。client沒必要用nio,使用中的client server,需要...

步步為營 34 資料遷移

說明 無論是在練習中還是在企業中都非常常用.比如說電腦做系統,使用者現場實施 1 分離附加 1.1 分離 1.2如果有連線先斷掉連線 檔案所處位置f program files microsoft sql server mssql12.mssqlserver mssql data 中找到倆個檔案 1...