天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

.Net下的分布式緩存--從Discuz!NT的緩存設計談起

  最近拜讀了代振軍同學寫的關于Discuz!NT的緩存設計的一篇文章《Discuz!NT 緩存設計簡析 [原創]》,頗有些想法,姑且寫在這里讓大家拍磚吧。

  緩存真是個好東西,在大型的系統中可以有效地提升系統的速度,此乃廢話就不多說了,在.NET 平臺下面我把緩存從功用大致分為兩類,數據對象緩存和頁面輸出緩存. 對于數據緩存來講是由System.Web.Caching.Cache這個類來實現,可以從上下文對象Context.Cache 來獲取這個對象的引用.而頁面/控件輸出緩存則是由.NET環境在運行時依據頭部的緩存申明來控制緩存策略. 本文主要論證與數據緩存相關的一些應用與問題.

  文中代同學提到了"無法跨Web園共享數據的問題",雖然提到解決方案就是使用XML文件來存放緩存的鍵值,這里有一個疑惑,就是.NET的Web園既然是進程獨立的又何來共享之說呢,真要是這樣的話即便是通過XML文檔寫入緩存鍵值緩存的對象也不能同時在兩個進程中共享,而這里獲得的好處僅是避免了在其它的進程中讀到了已在當前進程中失效的“臟”緩存數據,這樣的話開幾個Web園就會產生幾個緩存的對象對系統資源的利用系就比較低了. 如果是用Web場布署的話浪費就更多了,也許是還少有論壇達到這樣的規模故不在設計能力的范圍中吧.CommunityServer也是使用了這個系統對象,并對它作了一些包裝形成了CommunityServer.Components.CSCache這個類,還是不錯的,可以在項目中選擇使用.

  基于這個類的應注實現還有EnterpriseLibrary的CacheBlock里面的NullBackingStore方式,但是為了滿足多進程/服務器共程緩存數據的需求EntLib還提供了將SQL SERVER作為后端存儲設備的方案,這樣在性能要求不是太嚴,客戶端連接不是太多的情況下也可以使用這種方式.只需要將EntLib 配置為共享數據庫分區的工作方式即可,所有的CacheManager實例都有對緩存塊的讀寫權,當然你也可配置為只允許一個實例寫,其它的來讀.

  那么還有沒有更好的辦法呢,其實是有的. 不過我很奇怪在.NET平臺下居然沒有“原生態”的分布式緩存解決方案,也許是俺孤陋寡聞吧,有哪位達人知道的請分享。還好我們有Memcached這東西,它在php平臺上已經取得了巨大的成功,是優秀的分布式緩存解決方案,可以參看這篇文章 , 大型的站點上應該必不可少吧.有舉的同學可以去看看, 另外還想好一個思路, 就是在EntLib的基礎上作擴展實現IBackingStore 接口從BaseBackingStore派生一個實現出來,再經由Remoting或者ICE這樣的分布式中間件技術應該也可以實現的類似的功能吧.

  用XML作為緩存鍵的存儲方式倒是一個不錯的想法,這樣在批量移除緩存項的時候就不需要作掃描而直接得到相應的緩存鍵值,跟分布式緩存作一個整合應當是一個不錯的方案。

  好了,讓我們再回頭看看Discuz!NT在頁面緩存上有些什么高招.

  總的說來我是不怎么喜歡.NET2.0提供的頁面輸出緩存功能,主要是不能手動地控制頁面緩存的過期,而使有緩存依賴項似乎也有點不爽。事實上使用數據綁定控件相對來說是比較消耗資源的,同樣的數據我用StringBuilder直接拼出來輸出速度要快不少,測試代碼比較簡單我這里就不給了,大家可以自己去測去,Discuz!NT在設計中也大量地采用了這樣的方法(怪不得速度這么快呢;))。一般來講模版被保存后后臺會在ASPx目錄生成對應的頁面文件, 比如你有一個頁面,上面需要顯示一個來訪者的姓名,它的偽代碼看起來可能是這個樣子

  模版文件內容show.html:

<html>
<body>
Hello, Your name
is <% yourname %>
</body>
</html>
生成的文件 show.ASPx
templateBuilder.AppendLine(
"<html>");
templateBuilder.AppendLine(
"<body>");
templateBuilder.AppendLine(
"Hello, Your name is " + this.yourname);
templateBuilder.AppendLine(
"</body>");
templateBuilder.AppendLine(
"</html>");

NET技術.Net下的分布式緩存--從Discuz!NT的緩存設計談起,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 麻豆AV蜜桃AV久久 | 日本欧美久久久久免费播放网 | 久久一区精品 | 天美传媒色情原创精品 | 国产午夜精品福利久久 | 在线国产三级 | 日日摸夜夜添无码AVA片 | 午夜爱情动作片P | 高中生被C到爽哭视频免费 高挑人妻无奈张开腿 | 欧美日韩看看2015永久免费 | 国产电影午夜成年免费视频 | 国产午夜亚洲精品不卡电影 | 国产亚洲精品V在线观看一 国产亚洲精品a在线观看app | 羞羞影院午夜男女爽爽影院网站 | 国产91青青成人a在线 | 亚洲AV福利天堂一区二区三 | 让男人玩尿道的女人 | 伊人色啪啪天天综合婷婷 | 好爽好深太大了再快一点 | 欧美丰满熟妇BBB久久久 | 伊人久久中文字幕久久cm | 亚洲中文无码AV在线观看 | 一品道门在线视频高清完整版 | 花蝴蝶在线高清视频观看免费播放 | 欧美人成人亚洲专区中文字幕 | 白人大战34厘米黑人BD | 免费伦理片网站 | 国产在线播放KKK | 亚洲色无码播放 | 岛国大片在线观看完整版 | 日本边添边摸边做边爱边 | 伊人国产在线播放 | 蜜桃成熟时2在线观看完整版hd | G0GO人体大尺香蕉 | 国产精品亚洲在钱视频 | 久久精品亚洲精品国产欧美 | 国产69精品久久久久观看软件 | 性xxxx18公交车 | 好好的曰com久久 | 日韩精品AV一区二区三区 | 亚洲免费观看在线视频 |