真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在.NetCore使用緩存和配置

本篇文章為大家展示了如何在.Net Core 使用緩存和配置,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

專注于為中小企業(yè)提供網(wǎng)站設計制作、網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)新泰免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

前言

????幾乎在所有的應用程序中,緩存都是一個永恒的話題,恰當?shù)氖褂镁彺婵梢杂行岣邞贸绦虻男阅埽辉谀承I(yè)務場景下,使用緩存依賴會有很好的體驗;在 Asp.Net Core 中,支持了多種緩存組件,這其中最基礎也最易用的當屬 IMemoryCache,該接口表示其存儲依賴于托管程序服務器的內存,下面要介紹的內容就是基于 IMemoryCache 的緩存依賴。

1. IMemoryCache 的實現(xiàn)

Asp.Net Core 內部實現(xiàn)了一個繼承自 IMemoryCache 接口的類 MemoryCache
這幾乎已成慣例,一旦某個接口被列入 SDK 中,其必然包含了一個默認實現(xiàn)

1.1 使用 IMemoryCache

在 Asp.Net Core 中要使用 IMemoryCache 非常簡單,只需要在 Startup 的 ConfigureServices 方法加入一句代碼 services.AddMemoryCache() 即可

如何在.Net Core 使用緩存和配置

1.2 在控制器中使用 IMemoryCache

如何在.Net Core 使用緩存和配置

上面的代碼表示在 HomeController 控制器的構造方法中使用注入的方式獲得了一個 IMemoryCache 對象,在 Get() 方法中增加了一條緩存記錄 "userId=0001",然后在 Get(int id) 接口中提取該緩存記錄
運行程序,分別調用 Get() 和 Get(int id) 接口,獲得下面的輸出信息

  • 調用 Get() 接口

如何在.Net Core 使用緩存和配置

  • 調用 Get(int id) 接口

如何在.Net Core 使用緩存和配置

這看起來非常容易,幾乎不用什么思考,你就學會了在 Asp.Net Core 中使用緩存,容易使用,這非常重要,這也是一門語言廣泛推廣的根本態(tài)度

2. 應用緩存策略

IMemoryCache 還包含了一個帶參數(shù)的構造方法,讓我們可以對緩存進行靈活的配置,該配置由類 MemoryCacheOptions 決定

2.1 MemoryCacheOptions 配置,MemoryCacheOptions的配置項目不多,看下面的代碼

如何在.Net Core 使用緩存和配置

  • ISystemClock:系統(tǒng)時鐘,默認值為 null,官方文檔對此屬性沒有說明,我也不知道是干什么用的,哪位大神求告知其作用和原理

  • ExpirationScanFrequency:對過期緩存的掃描間隔時間

  • SizeLimit:緩存區(qū)可存儲記錄條目數(shù)量

  • CompactionPercentage:在緩存過期策略生效的時候,對緩存進行壓縮的百分比

上面的這個配置非常簡單,在系統(tǒng)中應用類似下面的代碼這樣

如何在.Net Core 使用緩存和配置

上面的緩存策略設置為緩存壓縮比為 2%,每 5 分鐘進行一次過期緩存的掃描,最大緩存空間大小限制為 1024
使用方法不變

2.1 單個鍵緩存策略

由于緩存的所有鍵其緩存過期優(yōu)先級都是默認的 Normal,可能我們需要在某些業(yè)務場景下,讓某些緩存值設置一個較高的優(yōu)先級,比如設置永遠都不過期,這樣即使緩存達到最大限制條數(shù)以后也不會對其進行清理

  • 緩存優(yōu)先級,該值為一個枚舉類型,分別是 低、普通、高、永不移除,開發(fā)者可以根據(jù)不同的業(yè)務場景靈活設置

如何在.Net Core 使用緩存和配置

  • 設置策略,下面就使用 MemoryCacheEntryOptions 對單個鍵值進行應用策略

如何在.Net Core 使用緩存和配置

上面的代碼表示,我們對緩存鍵 "userId" 應用了一個 “永不移除” 的策略,當然,還可以對單個值做非常多的策略,比如現(xiàn)在 "userId" 的值大小等等,有興趣的同學可以深入了解 MemoryCacheEntryOptions 類

3. 使用緩存依賴策略

緩存依賴的意思是表示,一個或者多個緩存依賴于某個緩存,當某個緩存過期的時候,對其有依賴條件的其它緩存也會過期,在某些應用場景下,緩存依賴非常有用

3.1 創(chuàng)建 TokenController 并登錄后注冊依賴、獲取緩存、移除緩存接口

以下示例使用一個模擬用戶登錄/登出的業(yè)務場景

如何在.Net Core 使用緩存和配置

如何在.Net Core 使用緩存和配置

如何在.Net Core 使用緩存和配置

上面的代碼使用 CancellationTokenSource 用作事件通知源,當移除 CacheKeys.DependentCTS 并觸發(fā) CancellationTokenSource.Cancel() 方法后,將異步觸發(fā) DependentEvictionCallback(object key, object value, EvictionReason reason, object state)委托;此時,托管程序收到一個通知,用戶已登出,已移除用戶相關緩存,任何移除接口嘗試再次讀取 CacheKeys 項,此時,返回值為空

3.2 運行程序,分別調用 login/getkeys/logout 接口,分別得到以下輸出結果
  • login 登錄后注冊依賴

如何在.Net Core 使用緩存和配置

  • getkeys 獲取緩存

如何在.Net Core 使用緩存和配置

  • logout 移除緩存,嘗試再次讀取 CacheKeys 項,此時,返回值為空

如何在.Net Core 使用緩存和配置

  • 控制臺輸出移除通知(黃色字體部分信息)

如何在.Net Core 使用緩存和配置

可以看到,在用戶登錄登出這個業(yè)務場景下,使用緩存依賴項對其相關緩存進行管理,還是非常方便的,當用戶退出登錄后,即清空其所有相關緩存

  • 本文通過實例介紹了 IMemoryCache 的簡單使用方法

  • 針對單個緩存鍵,也可以對其進行應用策略

  • 通過使用緩存依賴策略,可以在某些業(yè)務場景中有非常好的應用體驗

  • 注意:當使用全局緩存策略 SizeLimit 時,每個鍵都需要設置一個大小

  • IMemoryCache 依賴于托管服務器等內存,一旦重啟,緩存數(shù)據(jù)將立即被釋放

上述內容就是如何在.Net Core 使用緩存和配置,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:如何在.NetCore使用緩存和配置
當前網(wǎng)址:http://weahome.cn/article/gehhee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部