日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET缓存全解析4:应用程序数据缓存(转)

發布時間:2025/3/14 asp.net 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET缓存全解析4:应用程序数据缓存(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  ASP.NET緩存全解析文章索引

  • ASP.NET緩存全解析1:緩存的概述
  • ASP.NET緩存全解析2:頁面輸出緩存
  • ASP.NET緩存全解析3:頁面局部緩存
  • ASP.NET緩存全解析4:應用程序數據緩存
  • ASP.NET 緩存全解析5:文件緩存依賴
  • ASP.NET 緩存全解析6:數據庫緩存依賴
  • ASP.NET 緩存全解析7:第三方分布式緩存解決方案 Memcached和Cacheman

  System.Web.Caching 命名空間提供用于緩存服務器上常用數據的類。此命名空間包括 Cache 類,該類是一個字典,您可以在其中存儲任意數據對象,如哈希表和數據集。它還為這些對象提供了失效功能,并為您提供了添加和移除這些對象的方法。您還可以添加依賴于其他文件或緩存項的對象,并在從 Cache 對象中移除對象時執行回調以通知應用程序。

///<summary>
/// 獲取當前應用程序指定CacheKey的Cache對象值
///</summary>
///<param name="CacheKey">索引鍵值</param>
///<returns>返回緩存對象</returns>?
publicstaticobject GetCache(string CacheKey)
{
System.Web.Caching.Cache objCache
= HttpRuntime.Cache;
return objCache[CacheKey];
}
///<summary>
/// 設置當前應用程序指定CacheKey的Cache對象值
///</summary>
///<param name="CacheKey">索引鍵值</param>
///<param name="objObject">緩存對象</param>
publicstaticvoid SetCache(string CacheKey, object objObject)
{
System.Web.Caching.Cache objCache
= HttpRuntime.Cache;
objCache.Insert(CacheKey, objObject);
}
///<summary>
/// 設置當前應用程序指定CacheKey的Cache對象值
///</summary>
///<param name="CacheKey">索引鍵值</param>
///<param name="objObject">緩存對象</param>
///<param name="absoluteExpiration">絕對過期時間</param>
///<param name="slidingExpiration">最后一次訪問所插入對象時與該對象過期時之間的時間間隔</param>
publicstaticvoid SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)
{
System.Web.Caching.Cache objCache
= HttpRuntime.Cache;
objCache.Insert(CacheKey, objObject,
null, absoluteExpiration, slidingExpiration);
}
protectedvoid Page_Load(object sender, EventArgs e)
{
string CacheKey ="cachetest";
object objModel = GetCache(CacheKey);//從緩存中獲取
if (objModel ==null)//緩存里沒有
{
objModel
= DateTime.Now;//把當前時間進行緩存
if (objModel !=null)
{
int CacheTime =30;//緩存時間30秒
SetCache(CacheKey, objModel, DateTime.Now.AddSeconds(CacheTime), TimeSpan.Zero);//寫入緩存
}
}
Label1.Text
= objModel.ToString();
}

  以上幾種方法都很好的解決了數據緩存的問題,但由一個最大的問題是當數據發生變化了,而緩存里還是過期的數據,只有等緩存過期后才會重新獲取最 新的數據,這樣的話,很多時候用戶獲取的數據都是和實際數據不一致的過期數據。這同樣給用戶造成了比較大的麻煩,怎么辦呢?接著往下看。

轉載于:https://www.cnblogs.com/tonykan/archive/2012/08/28/2660414.html

總結

以上是生活随笔為你收集整理的ASP.NET缓存全解析4:应用程序数据缓存(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。