列出當前站點所有Cache並清除
阿新 • • 發佈:2019-02-03
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;
}
幾個頁面都採用了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;
}