中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET Core中MemoryCache的作用是什么

發布時間:2021-06-08 16:13:54 來源:億速云 閱讀:185 作者:Leah 欄目:開發技術

.NET Core中MemoryCache的作用是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

MSCache能做什么?

  1. 絕對過期支持

  2. 滑動過期支持(指定一個時間,TimeSpan,指定時間內有被Get緩存時間則順延,否則過期)

  3. 過期回調

  4. 自定義過期

MSCache目前最新的正式版是 2.0.0,預覽版是2.1.0,會與.NETCore 2.1一起發布。本篇用了2.0.0版本

開源在GitHub上,倉庫地址是:https://github.com/aspnet/Caching

NuGet地址為:https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/2.0.0

從IMemoryCache說起

.NET Core中MemoryCache的作用是什么

IMemoryCache 就提供了三個方法并實現了 IDisposable 接口。

很好理解

CreateEntry 添加一個緩存

Remove 刪除一個緩存

TryGetValue 獲取一個緩存(并可得到具體的緩存是否存在)

ICacheEntry

.NET Core中MemoryCache的作用是什么

ICacheEntry 有以上成員,同時實現了 IDisposable 接口,為什么要實現這個接口?用來釋放緩存嗎?這個在接下來的篇幅會做解釋。

Key 緩存key

Value 緩存值

AbsoluteExpiration 絕對過期時間,為null則條件無效

AbsoluteExpirationRelativeToNow 相對當前時間的絕對過期時間(使用TimeSpan),為null條件無效

SlidingExpiration 滑動過期時間

ExpirationTokens 提供用來自定義緩存過期

PostEvictionCallbacks 緩存失效回調

Priority 緩存項優先級(在緩存滿載的時候絕對清除的順序)

Size 代表緩存數據的大小,在內存緩存中一般為null

我們來試試

.NET Core中MemoryCache的作用是什么

恩,妥妥的,輸出 “True” 和 “1”。

.NET Core中MemoryCache的作用是什么

納尼,居然是“False”和null。

玄學

有些同學可能已經注意到了 ICacheEntry 實現了IDisposable接口。為什么ICacheEntry要實現 IDisposable 接口呢?講真我也不知道。反正大家知道它是具體像MemoryCache插入緩存的方法就行。

這有點違背了我們之前所學的 IDisposable 用來釋放資源的原則。

正確的打開方式

.NET Core中MemoryCache的作用是什么

開發者的體驗

說到底還不是 Set、Add、Get、Remove、Clear ?跟之前差不多啊。

MS團隊提供了一個 CacheExtensions 擴展方法類

.NET Core中MemoryCache的作用是什么

Get 比較好理解這邊不多做累述。

Set 設置一個新的緩存條目(相同key的會被移除)就好像被set的這個key是一個完全新的東西,所以也不會繼承之前的過期時間和過期token。

GetOrCreate

基本都用它,我們來看看。

.NET Core中MemoryCache的作用是什么

兩種方式 GetOrCreate 減少了第一種模式的判斷。回調里面的entry就是ICacheEntry可以用來設置緩存的其它選項。

同時在這個Task滿天飛的日子里,還提供了了 GetOrCreateAsync 擴展方法。

.NET Core中MemoryCache的作用是什么

關于.NET Core中MemoryCache的作用是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霸州市| 浮山县| 柳州市| 扶绥县| 合川市| 酉阳| 达孜县| 乌什县| 八宿县| 韩城市| 建始县| 黄平县| 满城县| 滕州市| 石泉县| 霍林郭勒市| 含山县| 思茅市| 襄垣县| 高尔夫| 浦东新区| 南部县| 牡丹江市| 道孚县| 三门峡市| 漳州市| 葫芦岛市| 武邑县| 璧山县| 佛冈县| 九江市| 当阳市| 合山市| 石嘴山市| 崇明县| 沈丘县| 湖北省| 六盘水市| 聊城市| 高青县| 稷山县|