Asp.net core Webapi 项目如何优雅地使用内存缓存

前言

缓存是提升程序性能必不可少的方法,Asp.net core 支持多级缓存配置,主要有客户端缓存、服务器端缓存,内存缓存和分布式缓存等。其中客户端缓和服务器端缓存在使用上都有比较大的限制,而内存缓和分布式缓存则比较灵活。

内存缓存就是一种把缓存数据放到应用程序内存中的机制。

本篇主要讲解在 asp.net core webapi 项目中如何使用内存缓存。

使用步骤

  1. 打开 Program.cs 文件

  2. 在语句 var app = builder.Build(); 之前注册内存缓存服务

    var builder = WebApplication.CreateBuilder(args);
    ......
    builder.Services.AddMemoryCache();
    ......
    var app = builder.Build();
  3. 打开控制器文件,如 Test1Controller.cs

  4. 引入内存缓存命名空间

    using Microsoft.Extensions.Caching.Memory;
  5. 在构造方法注入内存缓存服务,如:

    private readonly ILogger<Test1Controller> logger;
    private readonly IMemoryCache memCache;
    public Test1Controller(
    ILogger<Test1Controller> logger,
    IMemoryCache memCache)
    {
    this.logger = logger;
    this.memCache = memCache;
    }
  6. 通过内存缓存的 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;
    }
posted @   代码掌控者  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示