1. 程式人生 > >列出當前站點所有Cache並清除

列出當前站點所有Cache並清除

Blog經過一次大的修整後
幾個頁面都採用了Cache機制,並設定了相應的過期時間
這樣會加快頁面的載入,減少等待的時間

但同時也有一個弊端:無法正確獲取最新的記錄
如釋出一篇日誌後,可能不會立即在首頁顯示出來,必須等快取過期後,
才會再從資料庫查詢一次,此時才會看到最新的記錄.

有時可能需要立即更新,這裡就必須手工清除一下Cache
Cache類有一個Remove方法,但該方法需要提供一個CacheKey,但整個網站的CacheKey我們是無法得知的
只能經過遍歷

protected void RemoveAllCache()
    {
       
       System.Web.Caching.Cache _cache = HttpRuntime.Cache;
       IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
       ArrayList al = new ArrayList();
       while (CacheEnum.MoveNext())
       {
          al.Add(CacheEnum.Key);
       }

       foreach (string key in al)
       {
          _cache.Remove(key);
       }
       show();
    }
//顯示所有快取
    void show()
    {
       string str = "";
       IDictionaryEnumerator CacheEnum = HttpRuntime.Cache.GetEnumerator();
       
       while (CacheEnum.MoveNext())
       {
          str += "快取名<b>[" + CacheEnum.Key+"]</b><br />" ;
       }
       this.Label1.Text = "當前網站總快取數:" + HttpRuntime.Cache.Count + "<br />"+str;
    }