Asp.Net Core 缓存使用_Asp.Net core 服务器缓存IMemoryCache(服务器缓存)

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   方便使用

 

具体参考如下:

Asp.net Core CacheHelper 通用缓存帮助类

 

三、使用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文件下载

posted @ 2022-04-27 13:18  天马3798  阅读(496)  评论(0编辑  收藏  举报