您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“ASP.NET Core中的Caching組件怎么用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“ASP.NET Core中的Caching組件怎么用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
在.NET Core中提供了Caching的組件。目前Caching組件提供了三種存儲方式:
Memory
SQLSever
新建一個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(); }
在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組件怎么用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。