asp.net中的緩衝(三)應用程式資料緩衝

來源:互聯網
上載者:User

應用程式資料緩衝

本緩衝依賴於 System.Web.Caching 命名空間。

      該命名空間提供了快取服務器上常用的資料的類,其包含的一個Cache類提供很多的方法,由於該類是一個字典類,所以,在其中存放任意的資料對象,如雜湊表、資料集等。這些方法能夠對這些對象進行增加、刪除、失效等操作,甚至還可以依賴其它檔案或快取項目的對象,並且能在從Cache中移除對象時執行回調以通知應用程式。範例程式碼如下:

應用程式資料緩衝

1 // 增加命名空間
 2 using System.Web.Caching;
 3 
 4 /// <summary>
 5 /// 根據索引索引值從緩衝中擷取對象
 6 /// </summary>
 7 /// <param name="cacheKey">索引索引值</param>
 8 /// <returns>緩衝的對象</returns>
 9 private static object GetObjectFromCache(string cacheKey)
10 {
11     Cache cache = HttpRuntime.Cache;
12     return cache[cacheKey];
13 }
14 
15 /// <summary>
16 /// 將對象以cacheKey為索引索引值添加到緩衝中
17 /// </summary>
18 /// <param name="cacheKey">索引索引值</param>
19 /// <param name="obj">需要緩衝的對象</param>
20 private static void AddObjectToCache(string cacheKey, object obj)
21 {
22     Cache cache = HttpRuntime.Cache;
23     cache.Insert(cacheKey, obj);
24 }
25 
26 /// <summary>
27 /// 將對象以cacheKey為索引索引值添加到緩衝中
28 /// </summary>
29 /// <param name="cacheKey">索引索引值</param>
30 /// <param name="obj">需要緩衝的對象</param>
31 /// <param name="absoluteExpiration">絕對到期時間</param>
32 /// <param name="slidingExpiration">最後一次訪問所插入對象時與該對象到期時之間的時間間隔</param>
33 private static void AddObjectToCache(string cacheKey, object obj, DateTime absoluteExpiration, TimeSpan slidingExpiration)
34 {
35     Cache cache = HttpRuntime.Cache;
36     cache.Insert(cacheKey, obj, null, absoluteExpiration, slidingExpiration);
37 }
38 
39 protected void Page_Load(object sender, EventArgs e)
40 {
41     string cacheKey = "__test";
42 
43     // 從緩衝中擷取
44     object obj = GetObjectFromCache(cacheKey);
45     // 緩衝裡沒有
46     if (obj == null)
47     {
48         // 把目前時間進行緩衝
49         obj = DateTime.Now;
50         if (obj != null)
51         {
52             // 緩衝時間30秒
53             int cacheTime = 30;
54             // 添加到緩衝中去
55             AddObjectToCache(cacheKey, obj, DateTime.Now.AddSeconds(cacheTime), TimeSpan.Zero);
56         }
57     }
58     Literal1.Text = obj.ToString();
59 }

      這些代碼就是比較好的緩衝解決方案,不過這裡有一個問題,當資料發生變化時,緩衝裡面還是到期的資料,只有等到緩衝內容到期之後,才能重新擷取新的資料。下面兩篇就解決了這個問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.