.NET Core針對緩存提供了很好的支持 ,我們不僅可以選擇將數(shù)據(jù)緩存在應(yīng)用進(jìn)程自身的內(nèi)存中,還可以采用分布式的形式將緩存數(shù)據(jù)存儲在一個“中心數(shù)據(jù)庫”中。對于分布式緩存,.NET Core提供了針對Redis和SQL Server的原生支持。除了這個獨(dú)立的緩存系統(tǒng)之外,ASP.NET Core還借助一個中間件實(shí)現(xiàn)了“響應(yīng)緩存”,它會按照HTTP緩存規(guī)范對整個響應(yīng)實(shí)施緩存。不過按照慣例,在對緩存進(jìn)行系統(tǒng)介紹之前,我們還是先通過一些簡單的實(shí)例演示感知一下如果在一個ASP.NET Core應(yīng)用中如何使用緩存。

目錄
一、將數(shù)據(jù)緩存在內(nèi)存中
二、基于Redis的分布式緩存
三、基于SQL Server的分布式緩存
四、緩存整個HTTP響應(yīng)

一、將數(shù)據(jù)緩存在內(nèi)存中

與針對數(shù)據(jù)庫和遠(yuǎn)程服務(wù)調(diào)用這種IO操作來說,應(yīng)用針對內(nèi)存的訪問性能將提供不止一個數(shù)量級的提升,所以將數(shù)據(jù)直接緩存在應(yīng)用進(jìn)程的內(nèi)容中自然具有最佳的性能優(yōu)勢。與基于內(nèi)存的緩存相關(guān)的應(yīng)用編程接口定義在NuGet包“Microsoft.Extensions.Caching.Memory”中,具體的緩存實(shí)現(xiàn)在一個名為MemoryCache的服務(wù)對象中,后者是我們對所有實(shí)現(xiàn)了IMemoryCache接口的所有類型以及對應(yīng)對象的統(tǒng)稱。由于是將緩存對象直接置于內(nèi)存之中,中間并不涉及持久化存儲的問題,自然也就無需考慮針對緩存對象的序列化問題,所以這種內(nèi)存模式支持任意類型的緩存對象。

針對緩存的操作不外乎對緩存數(shù)據(jù)的存與取,這兩個基本的操作都由上面介紹的這個MemoryCache對象來完成。如果我們在一個ASP.NET Core應(yīng)用對MemoryCache服務(wù)在啟動時做了注冊,我們就可以在任何地方獲取該服務(wù)對象設(shè)置和獲取緩存數(shù)據(jù),所以針對緩存的編程是非常簡單的。

   1: public class Program
   2: {
   3:     public static void Main()
        		

延伸閱讀

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