五月婷婷亚洲I成人小视频在线播放I久青草影院I五月婷婷精品I久久看片I97精品久久人人爽人人爽I欧美激情第28页I黄色小网站在线观看

旗下網(wǎng)站

百科知識(shí)庫

報(bào)道公司事件 · 傳播行業(yè)動(dòng)態(tài)

處理緩存時(shí)注意避免2件事

發(fā)布日期:2015-03-07    發(fā)布者:金菊

  例如,當(dāng)您緩存數(shù)據(jù)庫中所有流派的查詢結(jié)果并使用這一數(shù)據(jù)而沒有從數(shù)據(jù)庫中獲取新數(shù)據(jù)時(shí),可能就不會(huì)注意到其他用戶已同時(shí)在表中插入了新流派。

  緩存的另一問題是不能依賴于緩存中的項(xiàng)。為了使應(yīng)用程序最小化內(nèi)存消耗,ASP.NET中的緩存機(jī)制不時(shí)地自動(dòng)從緩存中刪除舊的或是不常使用的數(shù)據(jù)。因此,不能依賴于其中的項(xiàng),即使你是在應(yīng)用程序啟動(dòng)時(shí)插入它們的。

  下面將介紹如何避免這兩個(gè)問題。

  1. 避免舊數(shù)據(jù)

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

  使緩存無效的另一種選擇是使用緩存依賴性。通過緩存依賴性,可以在緩存的項(xiàng)與原始數(shù)據(jù)源之間創(chuàng)建關(guān)系。在底層數(shù)據(jù)源改變時(shí),緩存的項(xiàng)無效,這樣在它下次被請(qǐng)求時(shí)可重新創(chuàng)建。例如,您可以緩存較大文本或XML文件的內(nèi)容。可將它插入到緩存中,而不是每次需要時(shí)都讀取它。然后,將它與一個(gè)CacheDependency實(shí)例(它將監(jiān)視源文件)相掛鉤。一旦該文件發(fā)生改變,就從緩存中刪除項(xiàng),并在下次請(qǐng)求時(shí)重新創(chuàng)建。本章最后將介紹如何使用CacheDependency。

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

  2. 不要依賴緩存中的數(shù)據(jù)

  正如剛看到的,數(shù)據(jù)項(xiàng)可能會(huì)在應(yīng)用程序的生命周期的不同階段從緩存中刪除。它們會(huì)被緩存刪除,是因?yàn)锳SP.NET運(yùn)行庫確定它們不經(jīng)常使用,無謂地占用寶貴空間。當(dāng)Web應(yīng)用程序或Web服務(wù)器重啟時(shí),會(huì)清除整個(gè)緩存。數(shù)據(jù)項(xiàng)也會(huì)因?yàn)樗鼈兊囊蕾囆远粍h除。因此,不要依賴于存儲(chǔ)在緩存中的項(xiàng),即使在應(yīng)用程序生命周期的初期放入了這些數(shù)據(jù)。

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

  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()];

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

  這是個(gè)很好的不依賴緩存中的項(xiàng)的示例代碼。它檢查緩存,如果其中不存在數(shù)據(jù)項(xiàng)就先進(jìn)行創(chuàng)建。本章后面將介紹更多的有關(guān)以編程方式訪問緩存的內(nèi)容。

  使用緩存API并不是使用緩存的唯一方法。下一節(jié)將介紹在ASP.NET中緩存數(shù)據(jù)的不同方法。

Copyright 大連網(wǎng)龍科技 版權(quán)所有 遼ICP備14006349號(hào)  html - txt - xml

遼公網(wǎng)安備 21021702000140號(hào)

電話
客服
主站蜘蛛池模板: 亚洲电影网站 | 亚洲va欧美va人人爽 | 国产精品99久久久精品 | 人人要人人澡人人爽人人dvd | 国产成人不卡 | 日韩一级电影网站 | 在线影视 一区 二区 三区 | 国产高清绿奴videos | 91中文在线| 超碰人人草人人 | 91在线视频精品 | 久久久精品视频网站 | 国产性xxxx| 五月丁婷婷 | 人人爽人人看 | 免费中文字幕视频 | 在线高清| 亚洲天堂精品 | 国产69久久久欧美一级 | 在线视频观看亚洲 | 国产99久久久国产精品成人免费 | 日韩av一区二区在线 | 久久任你操 | 成人av影院在线观看 | 亚洲永久精品视频 | 天天综合区 | 美女视频黄网站 | 久久蜜臀av | 蜜桃传媒一区二区 | 亚洲欧美激情插 | 日韩大片在线免费观看 | 亚洲日韩欧美一区二区在线 | 久久午夜影院 | 91av大全 | 九九免费精品视频在线观看 | 久草免费电影 | 日韩电影在线观看中文字幕 | 国产精品免费一区二区三区在线观看 | 蜜桃av人人夜夜澡人人爽 | 人人艹人人 | av日韩av| 黄色片视频在线观看 | 中文日韩在线视频 | 丁香综合五月 | 国产精品久久久久婷婷二区次 | 国产a级片免费观看 | 国产欧美在线一区 | 婷婷综合视频 | 中字幕视频在线永久在线观看免费 | 狠狠躁18三区二区一区ai明星 | 99视频精品视频高清免费 | av爱干| 日韩在线| 国产精品欧美久久久久天天影视 | 亚洲欧美国产精品18p | 日本中文字幕一二区观 | 国产美女永久免费 | 欧美aa一级| 伊人天天色 | 亚洲精品美女久久久 | 天天干天天干天天射 | 麻豆视屏 | 国产精品观看在线亚洲人成网 | 久久高清| 久久久久久久久毛片 | 日本激情视频中文字幕 | 亚洲欧美一区二区三区孕妇写真 | 日韩国产精品一区 | 欧美另类交在线观看 | 日韩电影中文字幕在线 | 99在线免费观看视频 | 国产美女精品在线 | 五月天色中色 | 中文字幕乱码日本亚洲一区二区 | 免费a v观看 | 亚洲五月| 99在线观看视频网站 | 久一在线 | 国产一区二区高清不卡 | 成人aⅴ视频 | 国产在线第三页 | 成人免费xxxxxx视频 | 99c视频高清免费观看 | 精品国产一二三 | 国产午夜精品一区二区三区欧美 | 国产精品久久久久aaaa | 国产一级三级 | 亚洲一级二级 | 999久久久免费精品国产 | 国产日韩视频在线播放 | 狠狠的日日 | 91网免费看| 国产精品久久嫩一区二区免费 | 国产精品成人一区二区三区吃奶 | 99久久精品国产系列 | 狠狠干狠狠插 | 国产婷婷视频在线 | 久久ww| 成人黄色在线观看视频 |