Asp.net core Webapi 项目如何优雅地使用内存缓存
前言
缓存是提升程序性能必不可少的方法,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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)