成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

淺談 ASP.NET 中Cache的應用

2010-08-28 10:50:18來源:西部e網作者:

概述
Cache作為ASP.Net應用程序狀態管理之一的方法,管理瞬間狀態的高速緩存對象,在并發量大,效率要求較高的Application應用較廣。
Cache除了與Application一樣是一個簡單的鍵、值對的HashTable之外,還有其獨特之處:
1. Cache可以基于依賴項的終止
  依賴項可以是其他的Cache關鍵字、文件或者是時間戳。如果Cache的依賴項發生改變或終止,該項Cache內容就會無效并移除。
2. 鎖定管理
  ASP.net是多線程系統,當多個線程同時訪問Cache時,必然應用鎖定防止同時更新。這個問題Appliction的解決方法是用Lock()和UnLock()方法來鎖定,當然,Cache不同,其可以自行管理內部鎖定,所以更新Cache時,程序員不用做任何操作。
3. CallBack回調
該功能可以在Cache被刪除時運行代碼。

應用
如何把Cache應用到我們的實現工作中呢?偶目前正在做一個KMS項目,并發量很大且對速度效率要求很高,在前臺展現方面可能會出現性能瓶頸。為此,我們考慮應用SQL Server 2000生成XML文件,并把XML存入高速緩沖(Cache),前臺展現只從XML文檔獲取數據,這樣可以減少訪問數據庫,同時讀取Cache中的數據,速度也可以保證。下面是其中一段代碼,僅供參考。
protected void RefreshCache (string key, object item,CacheItemRemovedReason reason) 
    
{  
        
string filename="c:\abc.xml"
        XmlDocument xmldoc
=new XmlDocument(); 
 
        xmldoc.Load(filename); 
 
        CacheXml.Insert( 
                
"CacheName" 
                ,xmldoc 
                ,
new CacheDependency (filename) 
                ,Cache.NoAbsoluteExpiration 
                ,Cache.NoSlidingExpiration 
                ,CacheItemPriority.Default 
                ,
new CacheItemRemovedCallback (RefreshCache)  
                ); 
 
    }

[C#]
public void Insert(
string key,
object value,
CacheDependency dependencies,
DateTime absoluteExpiration,
TimeSpan slidingExpiration
);
參數
key
用于引用該對象的緩存鍵。
value
要插入緩存中的對象。
dependencies
所插入對象的文件依賴項或緩存鍵依賴項。當任何依賴項更改時,該對象即無效,并從緩存中移除。如果沒有依賴項,則此參數包含空引用(Visual Basic 中為 Nothing)。
absoluteExpiration
所插入對象將過期并被從緩存中移除的時間。
slidingExpiration
最后一次訪問所插入對象時與該對象過期時之間的時間間隔。如果該值等效于 20 分鐘,則對象在最后一次被訪問 20 分鐘之后將過期并被從緩存中移除。

如果 slidingExpiration 參數設置為 NoSlidingExpiration,則禁用可調整過期。如果將 slidingExpiration 參數設置為大于 Zero,則 absoluteExpiration 參數設置為 Now 加 slidingExpiration 參數中包含的值。如果在 absoluteExpiration 參數指定的時間之前從緩存請求該項,該項將再次放入緩存,并且 absoluteExpiration 將再次設置為 DateTime.Now 加 slidingExpiration 參數中包含的值。如果在 absoluteExpiration 參數中的日期以前并未從緩存中請求該項,則從緩存移除該項。
關鍵詞:ASP.NET
主站蜘蛛池模板: 柳林县| 叶城县| 囊谦县| 察哈| 康平县| 嘉义市| 连平县| 淮南市| 裕民县| 高州市| 石河子市| 祁东县| 丰城市| 合川市| 鄂托克旗| 澄迈县| 安阳县| 宁海县| 郴州市| 修武县| 齐齐哈尔市| 临城县| 昭觉县| 武平县| 磴口县| 房产| 始兴县| 积石山| 景德镇市| 兴隆县| 东阿县| 阜新市| 长丰县| 陇南市| 江阴市| 新巴尔虎右旗| 扎鲁特旗| 新化县| 隆回县| 万安县| 文安县|