Asp.net檔案快取依賴

來源:互聯網
上載者:User

  

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class Default4 : System.Web.UI.Page{    /// <summary>    /// 擷取當前應用程式指定CacheKey的Cache對象值    /// </summary>    /// <param name="CacheKey">索引索引值</param>    /// <returns>返回緩衝對象</returns>    public static object GetCache(string CacheKey)    {            System.Web.Caching.Cache objCache = HttpRuntime.Cache;            return objCache[CacheKey];    }    /// <summary>    /// 設定以緩衝依賴的方式快取資料    /// </summary>    /// <param name="CacheKey">索引索引值</param>    /// <param name="objObject">緩衝對象</param>    /// <param name="cacheDepen">依賴對象</param>    public static void 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應用中的緩衝依賴於同一個共用的檔案,可能會省掉這個麻煩。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.