文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ASP.NET移除全部或者部分缓存

ASP.NET移除全部或者部分缓存

时间:2010-11-27  来源:天天

例如,在Portal里,有新闻模块,文档模块,通知模块等,所以对应的缓存键值分布是 news_XXXXX, doc_XXXXX,announce_XXXXX等,当页面加载时,读取相关新闻到相应的键值里,如果页面再次加载,直接从缓存里读取接口

...

 

if(Cache["news_NEWSLIST"]==null)

{

return Cache.Insert("news_NEWSLIST")=DB.GetNewslist();

}

else

{

return Cache["news_NEWSLIST"];

}



 

 

 

....

 

如果新闻有更新后者删除,就需要移除缓存,所以需要定义一个移除缓存的方法:

 



public static void Refresh(string pre)
{
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)
{
if (pre == string.Empty)
{
_cache.Remove(key);
}
else
{
if (key.StartsWith(pre))
{
_cache.Remove(key);
}
}
}

}

 

这样,当我添加新闻后,只要调用 Refresh("news_")或者 Refresh("doc_")就可以删除这一类模板的所有缓存,既方便管理又可以满足需求。

如果需要删除所有缓存,只要调用 Refresh("") 即可移除系统所有的缓存。

-------------------------------------------------------------------------------

 

我的个人网站  http://www.dotnetcms.org    要查看Portal演示请访问 http://demo.dotnetcms.org   Portal使用指南  http://www.dotnetcms.org/help

 

相关阅读 更多 +
排行榜 更多 +
夕鸟

夕鸟

生活实用 下载
partyplay

partyplay

聊天通讯 下载
婚礼纪

婚礼纪

生活实用 下载