成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Cache提高ASP.NET性能

開發 后端
本文介紹使用Cache提高ASP.NET性能,ASP.NET作為基于.Net Framework的WEB開發技術,它也享用著.Net Framework的優越性。

使用Cache提高ASP.NET性能

雖然現在已經是寬帶時代,小貓已經離我們漸漸遠去,可作為WEB應用開發者來說,我們仍然有責任和義務不斷地通過技術手段來優化WEB應用性能,讓用戶瀏覽時少一些等待,多一些爽快。

所幸的是,ASP.NET作為基于.Net Framework的WEB開發技術,它也享用著.Net Framework的優越性,.Net Framework為我們提供了良好的Cache技術,使我們能開發出速度更快、用戶體驗更好的WEB應用。命名空間System.Web.Caching提供了Cache類,其Cache的有效性依賴分以下三種情況:
1.時間點(指定時間點內有效);
2.KEY值(KEY值作Cache項標識);
3.文件或目錄(指定文件或目錄變更,則原Cache項不可用);

下面我就結合實際開發的應用跟大家分享一下使用Cache提高ASP.NET性能。

我們在開發中常常會遇到讀取記錄列表(例如最近更新的新聞列表Top N)、記錄本身(例如一條新聞),用戶訪問的時候,這樣的信息是否每次都要重復從數據庫中讀取呢?聰明的你可能知道,這完全是沒必要的。

我們為了方便處理,不防設計一個SiteCache類(借鑒了CS中的CSCache.cs),并提供若干靜態方法,來負責處理Cache項的添加和刪除。下面給出類圖:

Cache項的添加和刪除


其實該類主要就是利用前文所提及的關于Cache依賴項的第一點與第二點的特性來維護我們自己的Cache項。有了SiteCache類,接下來看看如何使用它。還是以讀取新聞TonN列表為例:

  1. public static RecordSet GetNewsSetTopN(string classCode,int topN,
    SortPostsBy orderBy, SortOrder sortOrder, string language)  
  2. {  
  3. string cacheKey = string.Format("NewsSetTopN-LG:{0}:CC:{1}:TN:{2}:OB:{3}:SO:{4}", 
    language,classCode,topN.ToString(), orderBy.ToString(),sortOrder.ToString());  
  4.  
  5. //從上下文中讀緩存項  
  6. RecordSet newsSet = HttpContext.Current.Items[cacheKey] as RecordSet;  
  7. if (newsSet == null)  
  8. {  
  9. //從HttpRuntime.Cache讀緩存項  
  10. newsSet = SiteCache.Get(cacheKey) as RecordSet;  
  11. if (newsSet == null)  
  12. {  
  13. //直接從數據庫從讀取  
  14. CommonDataProvider dp=CommonDataProvider.Instance();  
  15. newsSet =dp.GetNewsSetTopN(language,classCode,topN,orderBy,sortOrder);  
  16. //并將結果緩存到HttpRuntime.Cache中  
  17. SiteCache.Insert(cacheKey, newsSet, 60, CacheItemPriority.Normal);  
  18. }  
  19. }  
  20. return newsSet;  

這樣在5分鐘內就不用重復訪問數據庫了來讀該列表了,當然,也有人會問,如果在這5分鐘內某條新聞刪除了或修改了怎么辦,沒關系,我們在刪除或修改時可以根據Cache KEY來強制刪除該Cache項,當然,如果你覺得你對列表的時效性不是特別在意,你可以不強制刪除該Cache項,讓Cache項定義的時間點自動失效。當然,最好還是提供一個方法按匹配模式項來強行刪除Cache項就可以了,例如:

  1. /// <summary> 
  2. /// 刪除匹配的NewsSetTopN列表的Cache項  
  3. /// </summary> 
  4. public static void ClearNewsSetTopNCache(string language,
    string classCode,int topN)  
  5. {  
  6. string cacheKey = string.Format("NewsSetTopN-LG:{0}:CC:{1}:TN:{2}",
    language,classCode,topN.ToString());  
  7. SiteCache.RemoveByPattern(cacheKey);  

發布新聞后調用靜態方法ClearNewsSetTopNCache()強行清除原來的TopN緩存項,例如:

  1. /// <summary> 
  2. /// 發布(新建)新聞  
  3. /// </summary> 
  4. /// <param name="post">新聞實例</param> 
  5. /// <returns>返回狀態</returns> 
  6. public static int Create(News post)  
  7. {  
  8. int status;  
  9. CommonDataProvider dp=CommonDataProvider.Instance();  
  10. dp.CreateUpdateDeleteNews(post, DataAction.Create, out status);  
  11. //強制清除匹配的緩存項  
  12. ClearNewsSetTopNCache (post.Language, post.ClassCode,Globals.
    GetSiteSetting.NewsListTopN);  
  13. return status;  

以上介紹使用Cache提高ASP.NET性能。

【編輯推薦】

  1. ASP.NET開發技巧之Theme功能淺析
  2. 詳解ASP.NET動態編譯
  3. Apache支持ASP.NET方法淺析
  4. 淺談ASP.NET服務器標準控件
  5. ASP.NET中SQL Server數據庫備份恢復淺析
責任編輯:佚名 來源: 51CTO.com
相關推薦

2011-10-14 10:37:54

ASP.NET

2009-07-20 17:07:30

提高ASP.NET性能

2009-07-29 11:33:14

ASP.NET技巧ASP.NET應用程序

2010-05-07 08:59:50

ASP.NET

2012-07-03 13:55:00

ASP.NET

2011-07-07 09:03:12

ASP.NET

2024-06-11 09:00:00

異步編程代碼

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 10:07:20

ASP.NET Ses

2009-08-10 14:55:43

ASP.NET htt

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-27 09:45:14

ASP.NET Dro

2009-07-23 15:44:39

ASP.NET MVC

2009-08-13 16:22:18

ASP.NET性能優化

2012-05-16 10:24:26

ASP.NET性能優化

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-08-13 15:49:18

ASP.NET性能優化

2011-10-19 09:41:15

ASP.NET性能優化

2024-09-10 08:13:16

Asp項目輕量級
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 综合色播| 香蕉婷婷| 国产精品永久在线观看 | 天天干天天爱天天爽 | 伊人精品在线 | 国产免费又黄又爽又刺激蜜月al | 黄色一级网 | 国产成人自拍av | 国产精品一区二区三区在线 | 午夜精品久久久久久久星辰影院 | 天天操欧美 | 365夜爽爽欧美性午夜免费视频 | 久久久久久久久久久久久久国产 | 国产乱码久久久久久一区二区 | 8x国产精品视频一区二区 | 中文字幕黄色大片 | 一级免费毛片 | 午夜国产一区 | 国产精品1区2区 | 亚洲永久免费观看 | 国产夜恋视频在线观看 | 国产欧美精品一区二区三区 | 欧美色性 | 久久久久国产一区二区三区 | 精品一区二区三区四区在线 | 日韩一区二区视频 | 断背山在线观看 | 亚洲精品福利在线 | 亚洲国产视频一区 | www.久久久.com | 在线国产小视频 | 日本一区二区高清视频 | 精品视频一区二区三区四区 | 日韩毛片视频 | 亚洲欧洲一区二区 | 成人久久18免费网站 | 98成人网 | 日韩在线一区二区三区 | 久久偷人 | 伊人狠狠干 | 91久久看片|