背景:

1:.NET Core 已經(jīng)沒(méi)System.Web,也木有了HttpRuntime.Cache,因此,該空間下Cache也木有了。

2:.NET Core 有新的Memory Cache提供,不過(guò)該內(nèi)存類我看了一下,并沒(méi)有支持文件的緩存依賴。

因此,在此前提下,預(yù)計(jì).NET Core明年出來(lái)2.0版本時(shí),可能也沒(méi)支持文件的緩存依賴,因此,有必要提前準(zhǔn)備實(shí)現(xiàn)。

在寫(xiě)此文前,我掃了一下園子里關(guān)于自定義緩存類的相關(guān)文章。

發(fā)現(xiàn)很多自定義的緩存類文章都簡(jiǎn)單停留在對(duì)字典的增刪改查。

因此,決定補(bǔ)充這一篇完整思路的。

下面,就介紹一下這個(gè)緩存類的實(shí)現(xiàn)過(guò)程及原理。

實(shí)現(xiàn)緩存的類的核心思路介紹:

1:用static Dictionary<string,object> 來(lái)存檔。

A:為了處理并發(fā),V4.0或以上,可以用System.Collections.Concurrent.ConcurrentDictionary<string,object> 來(lái)存檔。

B:如果為了支持.NET 2.0,則需要自己實(shí)現(xiàn)一個(gè)加鎖的字典(本文即此種情況)

2:對(duì)該Dictionary提供增刪改查方法。

3:提供定時(shí)緩存的過(guò)期策略。

4:提供文件監(jiān)控策略。

5:測(cè)試并發(fā)、性能、和內(nèi)存占用問(wèn)題。

以下內(nèi)容,重點(diǎn)介紹我的思路,源碼截圖以片斷方式提供,具體的源碼,會(huì)在鏈接中。

1:自定義線程安全的MDictionary(支持.NET 2.0)

如果要支持2.0,那么就只能自己實(shí)現(xiàn)了:實(shí)現(xiàn)的思路也很簡(jiǎn)單,只要對(duì)操作都加上鎖即可:

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式