列出当前站点所有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; 
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值