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

简介: 看看 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;
}


相关文章
|
8月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
313 0
|
开发框架 前端开发 .NET
一个适用于 .NET 的开源整洁架构项目模板
一个适用于 .NET 的开源整洁架构项目模板
278 26
|
开发框架 安全 .NET
【Azure Developer】.NET Aspire 项目本地调试遇 Grpc.Core.RpcException 异常( Error starting gRPC call ... )
Error starting gRPC call. HttpRequestException: The SSL connection could not be established, see inner exception. AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot
383 12
|
开发框架 .NET 程序员
驾驭Autofac,ASP.NET WebApi实现依赖注入详细步骤总结
Autofac 是一个轻量级的依赖注入框架,专门为 .NET 应用程序量身定做,它就像是你代码中的 "魔法师",用它来管理对象的生命周期,让你的代码更加模块化、易于测试和维护
596 4
驾驭Autofac,ASP.NET WebApi实现依赖注入详细步骤总结
|
12月前
|
传感器 人工智能 机器人
D1net阅闻|OpenAI机器人项目招新 或自研传感器
D1net阅闻|OpenAI机器人项目招新 或自研传感器
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
322 5
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
400 3
|
数据库连接 开发者
.NET 内存管理两种有效的资源释放方式
【10月更文挑战第15天】在.NET中,有两种有效的资源释放方式:一是使用`using`语句,适用于实现`IDisposable`接口的对象,如文件流、数据库连接等,能确保资源及时释放,避免泄漏;二是手动调用`Dispose`方法并处理异常,提供更灵活的资源管理方式,适用于复杂场景。这两种方式都能有效管理资源,提高应用性能和稳定性。
366 2
|
开发框架 前端开发 API
C#/.NET/.NET Core优秀项目和框架2024年9月简报
C#/.NET/.NET Core优秀项目和框架2024年9月简报
343 1
|
存储 消息中间件 前端开发
.NET常见的几种项目架构模式,你知道几种?
.NET常见的几种项目架构模式,你知道几种?
411 0