前言
缓存是提升程序性能必不可少的方法,Asp.net core 支持多级缓存配置,主要有客户端缓存、服务器端缓存,内存缓存和分布式缓存等。其中客户端缓和服务器端缓存在使用上都有比较大的限制,而内存缓和分布式缓存则比较灵活。
内存缓存就是一种把缓存数据放到应用程序内存中的机制。
本篇主要讲解在 asp.net core webapi 项目中如何使用内存缓存。
使用步骤
-
打开 Program.cs 文件
-
在语句
var app = builder.Build();
之前注册内存缓存服务var builder = WebApplication.CreateBuilder(args); ...... builder.Services.AddMemoryCache(); ...... var app = builder.Build();
-
打开控制器文件,如 Test1Controller.cs
-
引入内存缓存命名空间
using Microsoft.Extensions.Caching.Memory;
-
在构造方法注入内存缓存服务,如:
private readonly ILogger<Test1Controller> logger; private readonly IMemoryCache memCache; public Test1Controller( ILogger<Test1Controller> logger, IMemoryCache memCache) { this.logger = logger; this.memCache = memCache; }
-
通过内存缓存的
GetOrCreateAsync
方法获取和缓存数据,如:[HttpGet] public async Task<string> GetBooks() { logger.LogInformation("开始执行GetBooks"); var items = await memCache.GetOrCreateAsync("AllBooks", async (e) => { logger.LogInformation("读取数据"); return "My Memory Cache"; //这里可以改为从数据库中读取数据 }); logger.LogInformation("把数据返回给调用者"); return items; }