您现在的位置是:网站首页> 编程资料编程资料
ASP.NET Core中的Caching组件简介_实用技巧_
2023-05-24
410人已围观
简介 ASP.NET Core中的Caching组件简介_实用技巧_
在.NET Core中提供了Caching的组件。目前Caching组件提供了三种存储方式:
- Memory
- Redis
- SQLSever
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"; } 缓存项10秒过期(expires-after绝对过期时间)
相对十秒(expires-sliding相对过期时间)
@DateTime.Now @ViewBag.Cache以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- ASP.NET Core管理应用程序状态_实用技巧_
- ASP.NET Core中使用多环境_实用技巧_
- ASP.NET Core依赖注入(DI)讲解_实用技巧_
- ASP.NET Core配置文件的获取和设置_实用技巧_
- ASP.NET Core中的静态文件介绍_实用技巧_
- ASP.NET Core使用自定义日志中间件_实用技巧_
- ASP.NET Core 实现自动刷新JWT Token_实用技巧_
- 在 ASP.NET Core 中使用 HTTP 标头传播详情_实用技巧_
- .Net Core 3.1 Web API基础知识详解(收藏)_实用技巧_
- 基于ASP.NET实现单点登录(SSO)的示例代码_实用技巧_
