Cache常見用法

以下內容轉載自:http://www.cnblogs.com/fish-li/archive/2011/12/27/2304063.html


通常,我們使用Cache時,一般只有二個操作:讀,寫。
要從Cache中獲取一個緩存項,我們可以調用Cache.Get(key)方法,要將一個對象放入緩存,我們可以調用Add, Insert方法。 然而,Add, Insert方法都有許多參數,有時我們或許只是想簡單地放入緩存,一切接受默認值,那麼還可以調用它的默認索引器, 我們來看一下這個索引器是如何工作的:

public object this[string key]
{
    get
    {
        return this.Get(key);
    }
    set
    {
        this.Insert(key, value);
    }
}

可以看到:讀緩存,其實是在調用Get方法,而寫緩存則是在調用Insert方法的最簡單的那個重載版本。

注意了:Add方法也可以將一個對象放入緩存,這個方法有7個參數,而Insert也有一個簽名類似的重載版本, 它們有着類似的功能:將指定項添加到 System.Web.Caching.Cache 對象,該對象具有依賴項、過期和優先級策略以及一個委託(可用於在從 Cache 移除插入項時通知應用程序)。 然而,它們有一點小的區別:當要加入的緩存項已經在Cache中存在時,Insert將會覆蓋原有的緩存項目,而Add則不會修改原有緩存項。

也就是說:如果您希望某個緩存項目一旦放入緩存後,就不要再被修改,那麼調用Add確實可以防止後來的修改操作。 而調用Insert方法,則永遠會覆蓋已存在項(哪怕以前是調用Add加入的)。

從另一個角度看,Add的效果更像是 static readonly 的行爲,而Insert的效果則像 static 的行爲。
注意:我只是說【像】,事實上它們比一般的static成員有着更靈活的用法。

由於緩存項可以讓我們隨時訪問,看起來確實有點static成員的味道,但它們有着更高級的特性,比如: 緩存過期(絕對過期,滑動過期),緩存依賴(依賴文件,依賴其它緩存項),移除優先級,緩存移除前後的通知等等。 後面我將會分別介紹這四大類特性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章