系統緩存全解析5:文件緩存依賴

這種策略讓緩存依賴於一個指定的文件,經過改變文件的更新日期來清除緩存。緩存

                                               

///<summary>服務器

///獲取當前應用程序指定CacheKeyCache對象值負載均衡

///</summary>spa

///<param name="CacheKey">索引鍵值</param>對象

///<returns>返回緩存對象</returns>索引

public staticobject GetCache(string CacheKey)ci

{同步

    System.Web.Caching.Cache objCache =HttpRuntime.Cache;string

    return objCache[CacheKey];it

}

///<summary>

///設置以緩存依賴的方式緩存數據

///</summary>

///<param name="CacheKey">索引鍵值</param>

///<param name="objObject">緩存對象</param>

///<param name="cacheDepen">依賴對象</param>

public staticvoid SetCache(string CacheKey,object objObject, System.Web.Caching.CacheDependency dep)

{

    System.Web.Caching.Cache objCache =HttpRuntime.Cache;

    objCache.Insert(

        CacheKey,

        objObject,

        dep,

        System.Web.Caching.Cache.NoAbsoluteExpiration,//從不過時

        System.Web.Caching.Cache.NoSlidingExpiration,//禁用可調過時

        System.Web.Caching.CacheItemPriority.Default,

        null);

}

protected void Page_Load(object sender, EventArgs e)

{

    string CacheKey = "cachetest";

    object objModel = GetCache(CacheKey);//從緩存中獲取

    if (objModel == null) //緩存裏沒有

    {

        objModel = DateTime.Now;//把當前時間進行緩存

        if (objModel != null)

        {

            //依賴C:\\test.txt 文件的變化來更新緩存

            System.Web.Caching.CacheDependency dep =new System.Web.Caching.CacheDependency("C:\\test.txt");

            SetCache(CacheKey, objModel, dep);//寫入緩存

        }

    }

 

    Label1.Text = objModel.ToString();

}

    當咱們改變test.txt的內容時,緩存會自動更新。這種方式很是適合讀取配置文件的緩存處理。若是配置文件不變化,就一直讀取緩存的信息,一旦配置發生變化,自動更新同步緩存的數據。

這種方式的缺點是,若是緩存的數據比較多,相關的依賴文件比較鬆散,對管理這些依賴文件有必定的麻煩。對於負載均衡環境下,還須要同時更新多臺Web服務器下的緩存文件,若是多個Web應用中的緩存依賴於同一個共享的文件,可能會省掉這個麻煩。

相關文章
相關標籤/搜索