Asp.Net Core 缓存使用_Asp.Net core 服务器缓存(服务器缓存)
同系列文章推荐:Asp.Net Core 缓存使用_Asp.Net core 浏览器缓存(客户端缓存)
一、 IMemoryCache 简介使用步骤
Asp.Net Core项目中内置了服务器内存缓存 IMemoryCache。
ASP.NET Core 支持多个不同的缓存。 最简单的缓存基于 IMemoryCache。 IMemoryCache 表示存储在 Web 服务器内存中的缓存。
1. 开启服务器缓存服务
var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); //添加内存缓存 builder.Services.AddMemoryCache(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles();
2.使用服务器缓存
//内存缓存使用 IMemoryCache _cache ; public TestTwoController(IMemoryCache cache) { _cache = cache; } public IActionResult Index() { var time = _cache.Get("time");//从缓存中获取,没有返回null if (time == null) { time = DateTime.Now.ToString(); _cache.Set("time", time);//向缓存中添加数据,不设置时间,长期有效 } return Content("服务器时间:" + time); //return View(); }
可配置滑动过期时间,配置绝对过期时间,参考如下:https://docs.microsoft.com/zh-cn/aspnet/core/performance/caching/memory?view=aspnetcore-6.0
二、CacheHelper 封装 IMemoryCache 方便使用
具体参考如下:
三、使用IMemoryCache 缓存部分试图,使用案例
在主视图中写代码: 缓存部分试图,5分钟
<h1> 服务器时间:@(DateTime.Now) </h1> <p> @{ //部分视图转换成字符串,并缓存 string data = CacheHelper.CacheValue("time") as string; if (data == null) { StringWriter writer = new StringWriter(); Html.Partial("PartTwo").WriteTo(writer, HtmlEncoder); data = writer.ToString(); //缓存5分钟 CacheHelper.CacheInsertFromMinutes("time", data, 5); } this.Write(data); this.WriteLiteral(data); } </p>
更多:
Asp.Net Core 缓存使用_Asp.Net core 浏览器缓存(客户端缓存)
Asp.Net Core 6获取IHttpContextAccessor方法
Asp.Net Core Mvc下载处理__Asp.Net Core Mvc文件下载