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

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

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

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

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

   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),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式