前言 |
我們平時在瀏覽器瀏覽一些網址,多多少少都會涉及到緩存的問題,有時候覺得緩存挺煩的。但是在開發過程中,利用好緩存,可讓服務器或者數據庫減少很大的壓力。下面我來用C#舉幾種緩存類型的例子!
爲整個頁面設置緩存 |
在aspx文件開始位置加上這樣一句代碼
<%@ OutputCache Duration="15" VaryByParam="*" %>
它表示網頁沒有任何改變的情況下緩存15秒,這種情況一般爲請求量非常大的網站。VaryByParam表示對相同月面,不同的id參數進行單獨緩存。如果設置爲 * 表示所有。
絕對過期時間的緩存 |
絕對過期時間緩存,在一定的時間內是有緩存的,一旦過時,就會清除緩存。當然時間因情況而定
//設置過期時間的緩存 Cache.Insert("key", DateTime.Now.ToString(), null, DateTime.Now.AddSeconds(時間,單位秒), TimeSpan.Zero);
設置滑動過期時間緩存 |
滑動過期時間,表示在一定的時間段不對網站做操作,就清除緩存,如果一直有操作則一直存在緩存。
//設置滑動過期時間 Cache.Insert("key", DateTime.Now.ToString(), null, DateTime.MaxValue, new TimeSpan(0, 0, 5));
設置依賴項緩存 |
依賴某個文件,如果文件發生變化,則清除緩存,如果文件一直不變,緩存一直存在。
////設置依賴項緩存 string file = Request.MapPath("ceshi.txt"); Cache.Insert("key", DateTime.Now.ToString(), new System.Web.Caching.CacheDependency(file));
依賴數據庫緩存 |
依賴於一個數據庫中的一個表,如果該表發生變換,緩存也就清除。
具體的設置步驟如下:
打開ASP.NET State Service服務
在CMD中選擇到VS的安裝路徑下,輸入指令
aspnet_regsql -S . -E -ed -d Charge(數據庫名稱) -et -t User_Info(表名稱)
出現下圖:
在配置文件中<system.web>節點下添加配置
<caching> <sqlCacheDependency enabled="true"> <databases> <add name="Charge" connectionStringName="connectionString" pollTime="500"/> </databases> </sqlCacheDependency> </caching>
<connectionStrings> <add name="connectionString" connectionString="server=.;uid=sa;pwd=123456;database=Charge"/> </connectionStrings>
//依賴數據庫的緩存 // Cache.Insert("key",DateTime.Now.ToString(),new SqlCacheDependency("數據庫名稱", "表名"));
在這裏插入代碼片
總結 |
雖然只領略到了皮毛,就知道緩存這個東西很厲害,利用好這個東西,能減少服務器不下的壓力!