91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

ASP.NET?Core中的Caching組件怎么用

發布時間:2022-04-13 14:28:29 來源:億速云 閱讀:196 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“ASP.NET Core中的Caching組件怎么用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“ASP.NET Core中的Caching組件怎么用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

在.NET Core中提供了Caching的組件。目前Caching組件提供了三種存儲方式:

1.Memeor Caching

新建一個ASP.NET Core Web應用程序項目,然后安裝 Microsoft.Extensions.Caching.Memory。

修改ConfigureServices方法

services.AddMemoryCache();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

在HomeController使用:

        private IMemoryCache memoryCache;
        public HomeController( IMemoryCache _memoryCache)
        {
            memoryCache = _memoryCache;
        }

        public IActionResult Index()
        {
            string cacheKey = "key";
            string result;
            if (!memoryCache.TryGetValue(cacheKey, out result))
            {
                result = $"LineZero{DateTime.Now}";
                memoryCache.Set(cacheKey, result);
                //設置相對過期時間
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .SetSlidingExpiration(TimeSpan.FromSeconds(10)));
                //設置絕對過期時間
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .SetAbsoluteExpiration(TimeSpan.FromSeconds(10)));
                //刪除緩存
                memoryCache.Remove(cacheKey);
                //設置緩存優先級(程序壓力大時,會根據優先級自動回收)
                memoryCache.Set(cacheKey,result,new MemoryCacheEntryOptions() 
                    .SetPriority(CacheItemPriority.NeverRemove));
                //過期時緩存回調
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .SetAbsoluteExpiration(TimeSpan.FromSeconds(60))
                    .RegisterPostEvictionCallback((key, value, reason, substate)
                    =>
                    {
                        nlog.Warn($"鍵{key}值{value}改變,因為{reason}");
                    }));
                //Token過期時,緩存回調
                var cts = new CancellationTokenSource();
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .AddExpirationToken(new CancellationChangeToken(cts.Token))
                    .RegisterPostEvictionCallback((key, value, reason, substate)
                    =>
                    {
                        nlog.Warn($"鍵{key}值{value}改變,因為{reason}");
                    }));
            }
            ViewBag.Cache = result;
            return View();
        }

2.Distributed Cache Tag Helper

在ASP.NET Core MVC 中有一個 Distributed Cache Tag Helper,它是依賴于MemoryCache組件的。

可以直接在試圖上增加 distributed-cache 標簽

@{
    ViewData["Title"] = "Home Page";
}
<distributed-cache name="mycache" expires-after="TimeSpan.FromSeconds(10)">
    <p>緩存項10秒過期(expires-after絕對過期時間)</p>
</distributed-cache>
<distributed-cache name="mycachenew" expires-sliding="TimeSpan.FromSeconds(10)">
    <p>相對十秒(expires-sliding相對過期時間)</p>
    @DateTime.Now
</distributed-cache>
<div>@ViewBag.Cache</div>

讀到這里,這篇“ASP.NET Core中的Caching組件怎么用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

金阳县| 柳江县| 抚宁县| 舒兰市| 鹤庆县| 兴业县| 忻州市| 沙田区| 商丘市| 舟山市| 大方县| 霸州市| 新余市| 武隆县| 宜兰市| 曲阳县| 尚志市| 诏安县| 东至县| 湖南省| 巴塘县| 浦北县| 卫辉市| 台前县| 临江市| 长治县| 苗栗县| 南郑县| 化州市| 蒙阴县| 定兴县| 六盘水市| 祁东县| 湖南省| 木兰县| 新营市| 赤水市| 灌云县| 那曲县| 怀安县| 定远县|