ASP.NET中的Cache使用介紹
Cache 即高速緩存 ,我想非常多人對他的第一印象一定像我相同,感覺他一定能提高系統(tǒng)得性能和運行速度。的確。Net推出cache的初衷確實是這樣的。那么cache是怎么提高系統(tǒng)性能和運行速度呢?是不是在所有情況下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期研發(fā)的項目中有所體會,寫下來當(dāng)作總結(jié)也希望能跟大家一起探討探討,有錯誤的地方希望大家批評指正。
1.Cache 是怎么工作的
Cache 是分配在服務(wù)器上的一個公共的內(nèi)存片。
所謂公共指的cache只要一創(chuàng)建是所有一個客戶端瀏覽器都能通過后臺代碼訪問到他,他面向的是所有用戶,相對而言session也是服務(wù)器上的一段內(nèi)存,但他面向的是單個用戶。他是服務(wù)器的一段內(nèi)存塊,也就是說每個cache一經(jīng)創(chuàng)建就占用了服務(wù)器資源的。所以從這點來說我們就能說:并不是cache越多越好。
cache 是有時間限制的,超過了服務(wù)器設(shè)定的過期時間,他就會被服務(wù)器回收。
c.cache 能存放所有對象
2.Cache 怎么創(chuàng)建及怎么銷毀
創(chuàng)建cache
在。Net環(huán)境下通過Cache.Insert(string key,object o)方法創(chuàng)建。其中key 代表cache的ID,o代表存到cache里的對象。
銷毀cache.
通過方法Cache.Remove(string key)其中key 代表cache的 ID.
調(diào)用cache.
Cache支持裝箱/拆箱操作。如你能把一個DataSet對象ds通過Cache.Insert(“dsCache”,ds)的方式存到Cache中,能通過拆箱操作 DataSet ds = (DataSet)Cache[“dsCache”]來訪問他。
3.什么時候用cache
Cache 一般用于數(shù)據(jù)較固定,用的較頻繁的地方。例如能把進銷存系統(tǒng)中能把產(chǎn)品信息存入cache,在用戶調(diào)用產(chǎn)品信息時通過調(diào)用cache即可,這樣從非常大程度上減少了用戶和數(shù)據(jù)庫的交互,提高了系統(tǒng)的性能。反之,cache不適合用在數(shù)據(jù)變動快,使用范圍非常窄的地方。例如把一個具體采購單存入 cache中。
4.cache 調(diào)用注意事項
Cache是有時間限制的。超過了服務(wù)器設(shè)置的過期時間,就會被服務(wù)器回收。當(dāng)cache被回收后對應(yīng)的內(nèi)存塊就會被清空,再次通過cache[“cachekey”]訪問對象時返回的就是null值。所以以下這種調(diào)用就會出現(xiàn)異常
DataSet ds = (DataSet)Cache[“cacheds”]; DataRow dr = ds.Table[0].Row[0]; //出錯,ds為null值,不存在表0。
正確的寫法應(yīng)該是:
DataSet ds
If(Cache[“cacheds”] != null)
{
ds = (DataSet)Cache[“cacheds”];
}
Else
{
ds= GetDsFromDataBase();
}
DataRow dr = ds.Table[0].Row[0];
相關(guān)文章
ASP.NET中在一般處理程序中使用session的簡單介紹
這篇文章介紹了ASP.NET中在一般處理程序中使用session,有需要的朋友可以參考一下2013-10-10
ASP.NET MVC中使用JavaScriptResult的用法示例
這篇文章主要介紹了ASP.NET MVC中使用JavaScriptResult的用法,結(jié)合實例形式分析了采用javascript動態(tài)設(shè)置標(biāo)簽樣式以及使用MVC中的JavaScriptResult來實現(xiàn)同樣效果的相關(guān)技巧,需要的朋友可以參考下2016-08-08
在jquery repeater中添加設(shè)置日期,下拉,復(fù)選框等控件
JQueryElement 更新到了 3.5.1, 今天給大家主要講下如何在 Repeater 的模板中添加設(shè)置一些控件.2011-10-10
javascript實現(xiàn)listbox左右移動實現(xiàn)代碼
javascript實現(xiàn)listbox左右移動實現(xiàn)代碼,需要的朋友可以參考下。2010-05-05
ASP.NET Core中修改配置文件后自動加載新配置的方法詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中修改配置文件后自動加載新配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
System.Web中不存在類型或命名空間名稱script 找不到System.Web.Extensions.dll引用
這篇文章主要為大家詳細介紹了System.Web中不存在類型或命名空間名稱script,找不到System.Web.Extensions.dll引用的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

