快取可以在客戶端和伺服器中做,要是之間還有**,**也可能對響應進行快取。
**是將客戶端和伺服器連線在一起,作為中間人角色,可以將客戶端請求響應的內容進行快取,
在下次客戶端快取時,**直接返回快取結果,提高效能。
**快取控制是在http頭資訊中cache-control設定,當設成private時,**不會進行快取,
當設定為public時,**可以進行快取。
我們可以用程式設計方式:
void setpubliccache()還可以使用outputcache命令:
<%@outputcache duration="60" location="downstream" varybyparam="none"%>
伺服器快取:包含核心快取,iis快取,asp.net輸出快取,asp.net物件快取,資料庫快取等
windows核心快取:當客戶端http請求到達伺服器,肯定是先進windows核心模組,
然後進行一些處理,把請求委託給iis,iis在委託給asp.net應用程式,這是大致的乙個過程。
windows包含乙個核心模組的http驅動,名為http.sys,http協議在windows核心中提供了支援,提高了效能和靈活性。核心http快取預設為靜態檔案開啟,對動態檔案預設關閉。
可以啟動動態內容的快取:
<%@outputcache duration="60" varybyparam="none"%>
這句話也會同時啟動aspnet輸出快取。
程式設計方式啟動:
void setpubliccache()核心快取,會占用核心記憶體,是稀有資源,在120秒內沒有命中快取,就會被移除。
在核心快取下面的是iis輸出快取,可以根據查詢字串進行快取,這是核心快取不具備的。
再下面就是asp.net輸出快取:獨立於iis輸出快取,還可以根據引數改變輸出,設定方式和上面是一樣的,asp.net輸出快取還可以使用在使用者控制項之上,而頁面可以不設定快取。
關閉方法:this.response.cache.setnoservercaching();//關閉伺服器輸出快取
還可以從輸出快取中顯示指定移除項:
asp.net物件快取
string myvalue = null;
try}
finally
因為這種方式變數是多個執行緒可以訪問的,保證一致性狀態,物件本身實現的lock方法,可以運用。
快取只在當前請求中使用的物件
應用httpcontext.items快取當前請求中需要的物件,請求結束後會銷毀:
this.context.items["key"] = "value";
使用場景是使用者控制項之間共享資料,httpmodule與頁面之間互動機制。
可以使用httpcontext.cache快取不止乙個使用者需要且由多個頁面請求的物件。
使用:
public static object lockobject = new object();還可以指定執行時保留的時間lock(lockobject)
}
if(this.cache["key"] == null)還可以讓快取依賴於檔案:
public class xmldepend
return doc;}}
}這會將乙個xml檔案路徑給方法,用它構造乙個快取鍵,如果xmldocument仍然在快取中則返回它,否則就從硬碟載入,並建立快取依賴,當xml檔案被修改時,它會通知,並移除xmldocument的存環物件。
快取伺服器
nosql nosql not only sql 意即 不僅僅是sql 泛指非關係型的資料庫,隨著網際網路web2.0 的興起,傳統的關聯式資料庫在應付web2.0 特別是超大規模和高併發的sns型別的web2.0純動態 已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特...
memcached 快取伺服器
memcached 是高效能的 分布式記憶體快取伺服器。一般的使用目的是,通過快取資料庫查詢結果,減少資料庫訪問次數,以提高動態web應用的速度 提高可擴充套件性。主要特點 1 c s架構,協議簡單 2 基於libevent的事件處理 epoll 3 slab allocation記憶體管理機制 4...
memcache快取伺服器
memcached是乙個自由開源的,高效能,分布式記憶體物件快取系統。memcached是以livejournal旗下danga interactive公司的brad fitzpatric為首開發的一款軟體。現在已成為mixi hatena facebook vox livejournal等眾多服務...