国产成人啪精品-日日人人-熟女系列丰满熟妇av-国产在线码观看超清无码视频-国产精品久久自在自线-白丝爆浆18禁一区二区三区-无码高潮喷水在线观看-樱桃空空人妻无码内射-香港一级纯黄大片-国产精品人成在线播放新网站-免费日韩欧美-亚洲中文字幕久久无码精品-欧美人与动牲交a免费观看-四十路av-久久久久久夜精品精品免费啦

旗下網站

百科知識庫

報道公司事件 · 傳播行業動態

處理緩存時注意避免2件事

發布日期:2015-03-07    發布者:金菊

  例如,當您緩存數據庫中所有流派的查詢結果并使用這一數據而沒有從數據庫中獲取新數據時,可能就不會注意到其他用戶已同時在表中插入了新流派。

  緩存的另一問題是不能依賴于緩存中的項。為了使應用程序最小化內存消耗,ASP.NET中的緩存機制不時地自動從緩存中刪除舊的或是不常使用的數據。因此,不能依賴于其中的項,即使你是在應用程序啟動時插入它們的。

  下面將介紹如何避免這兩個問題。

  1. 避免舊數據

  為了避免出現與數據庫的原始數據不再同步的舊數據,需要一種方法來使緩存無效。通過使緩存無效,可將數據項從緩存中刪除,然后可針對下一請求重新創建。使緩存數據無效的方法有很多。首先,可選擇設置一個短暫的緩存持續時間。例如,緩存數據庫中的Genres列表10分鐘。如果別的用戶在這10分鐘期間插入新的流派,它將不在Web頁面上顯示。不過,10分鐘后,該列表從緩存中刪除,在下一次被請求時用新的數據重新創建。后面將介紹如何使用基于時間的緩存。

  使緩存無效的另一種選擇是使用緩存依賴性。通過緩存依賴性,可以在緩存的項與原始數據源之間創建關系。在底層數據源改變時,緩存的項無效,這樣在它下次被請求時可重新創建。例如,您可以緩存較大文本或XML文件的內容??蓪⑺迦氲骄彺嬷?,而不是每次需要時都讀取它。然后,將它與一個CacheDependency實例(它將監視源文件)相掛鉤。一旦該文件發生改變,就從緩存中刪除項,并在下次請求時重新創建。本章最后將介紹如何使用CacheDependency。

  在使用像Microsoft SQL Server這樣的數據庫時也可以使用緩存依賴性。這意味著,一旦緩存查詢的一部分數據改變,緩存項就失效。數據庫緩存機制和失效是較寬泛的高級主題。Scott Hanselman在《ASP.NET 3.5高級編程(第5版)(已由清華大學出版社引進并出版,ISBN 978-7-302-18119-4)一書的有關緩存的章節中談到了此內容。

  2. 不要依賴緩存中的數據

  正如剛看到的,數據項可能會在應用程序的生命周期的不同階段從緩存中刪除。它們會被緩存刪除,是因為ASP.NET運行庫確定它們不經常使用,無謂地占用寶貴空間。當Web應用程序或Web服務器重啟時,會清除整個緩存。數據項也會因為它們的依賴性而被刪除。因此,不要依賴于存儲在緩存中的項,即使在應用程序生命周期的初期放入了這些數據。

  本章的后面將介紹如何通過Cache API(Application Programming Interface,應用編程接口;可與Cache功能交互的方法)以編程形式使用緩存,不過這里有一個從緩存中檢索Review實例的快速示例。該代碼沒有假定其中有數據項,而是首先檢查緩存:

  VB.NET

  Dim reviewId As Integer = Convert.ToInt32(Request.QueryString.Get

  ("ReviewId"))

  Dim myReview As Review

  If Cache("MyReview" + reviewId.ToString()) Is Nothing Then

  Using db As New PlanetWroxDataContext()

  myReview = (From r In db.Reviews _

  Where r.Id = reviewId _

  choose r).Single()

  End Using

  Cache("MyReview" + reviewId.ToString()) = myReview

  End If

  myReview = CType(Cache("MyReview" + reviewId.ToString()), Review)

  C#

  int reviewId = Convert.ToInt32(Request.QueryString.Get("ReviewId"));

  Review myReview;

  if (Cache["MyReview" + reviewId.ToString()] == null)

  {

  using (PlanetWroxDataContext db = new PlanetWroxDataContext())

  {

  myReview = (from r in db.Reviews

  where r.Id == reviewId

  choose r).Single();

  }

  Cache["MyReview" + reviewId.ToString()] = myReview;

  }

  myReview = (Review) Cache["MyReview" + reviewId.ToString()];

  在這個代碼段中,通過鍵(這是靜態文字MyReview和被搜索的Review的ID的組合)在緩存中搜索數據項。如果緩存是空的(搜索返回Nothing或null),就使用LINQ查詢創建數據項,然后存儲在緩存中。

  這是個很好的不依賴緩存中的項的示例代碼。它檢查緩存,如果其中不存在數據項就先進行創建。本章后面將介紹更多的有關以編程方式訪問緩存的內容。

  使用緩存API并不是使用緩存的唯一方法。下一節將介紹在ASP.NET中緩存數據的不同方法。

Copyright 大連網龍科技 版權所有 遼ICP備14006349號  html - txt - xml

遼公網安備 21021702000140號

電話
客服
主站蜘蛛池模板: 日日摸日日碰夜夜爽av | 热99在线观看 | 亚洲综合色区另类aⅴ | 欧美另类69| 无码人妻丝袜在线视频红杏 | 日韩久久久久久久 | 97香蕉碰碰人妻国产欧美 | 一区二区三区四区国产精品 | 浪荡女天天不停挨cao日常视频 | 亚洲色欲色欲www | 区二区三区玖玖玖 | 欧美日韩国产精品一区二区 | 中文字幕在线观看视频一区 | 一级在线免费观看 | av无码免费一区二区三区 | 日日爱网站 | 欧美欧洲成本大片免费 | 日韩香蕉视频 | 国产亚洲无日韩乱码 | 国产成人精品一区二区仙踪林 | 特级毛片全部免费播放 | 色欲av无码无在线观看 | 青草伊人久久综在合线亚洲观看 | 欧美黑人一区二区三区 | 久色在线 | 天天干天天操天天操 | wwwxxxx在线观看| 乱人伦xxxx国语对白 | 国产偷国产偷亚洲高清人乐享 | 欧美日韩午夜群交多人轮换 | 国产又粗又硬又长又爽的演员 | 国产精品狼人久久久久影院 | 丁香婷婷激情五月 | 久久精品亚洲男人的天堂 | 一区二区传媒有限公司 | 成 人 在 线 免费观看 | 成年女人永久免费观看视频 | 欧美成在线观看 | 国产成人三级在线视频网站观看 | 午夜免费视频观看 | 亚洲欧美黄 | 熟睡人妻被讨厌的公侵犯深田咏美 | 久久综合国产伦精品免费 | 亚洲 自拍 色综合图 12p | 免费看撕开奶罩揉吮奶头视频 | 精品国产性色无码av网站 | 久久影院一区 | 久久日本视频 | 亚洲大成色www永久网站 | 毛片视屏| 久操资源网 | 亚洲熟女乱色一区二区三区 | 人人妻人人澡人人爽精品欧美 | 亚洲中文字幕经典三级 | 欧美一区二区在线看 | 亚洲巨乳自拍在线视频 | 亚洲天堂中文字幕 | av成人午夜无码一区二区 | 99视频在线 | 国产精品久久久久久久久人妻 | 天天综合色天天综合色h | 91丝袜在线 | 成熟女人特级毛片www免费 | 人妻熟妇乱又伦精品无码专区 | 亚洲精品久久久久久偷窥 | 国产熟女乱子视频正在播放 | 国产白嫩受无套呻吟 | 久久青青 | 射死你天天日 | 免费黄在线 | 亚洲精品欧美日韩 | 亚洲精品综合欧美一区二区三区 | 午夜宫| 亚洲天堂久久久久 | av无码中文一区二区三区四区 | 四虎影视成人永久免费观看亚洲欧美 | 强奷乱码中文字幕熟女导航 | 两个黑人大战嫩白金发美女 | 哪里有毛片看 | 开心色站 | 天天射天天搞 | 中文字幕视频免费观看 | 国产人成高清在线视频99最全资源 | 少妇人妻中文字幕污 | 亚洲精品嫩草研究院久久 | 131美女爱做视频免费 | 中文字幕一区二区三区精彩视频 | 91福利小视频 | 久久wwww | 在线播放视频一区 | 亚洲国产精品成人久久久 | 又嫩又硬又黄又爽的视频 | 国产微拍精品一区 | 国产理论精品 | 少妇被黑人4p到惨叫在线观看 | 久久精品99国产精 | 国产乱码精品1区2区3区 | 一级黄色欧美 | 怡红院成永久免费人全部视频 |