当前位置: 首页 > news >正文

ASP.NET Core 入门教学七 缓存机制

ASP.NET Core 提供了多种缓存机制,可以帮助您提高应用程序的性能。以下是一些常用的缓存方法:

1. 内存缓存

内存缓存是最简单的缓存形式,它将数据存储在应用程序的内存中。ASP.NET Core 提供了一个 IMemoryCache 接口,用于实现内存缓存。

首先,在 Startup.cs 文件中配置内存缓存:

 
public void ConfigureServices(IServiceCollection services)
{services.AddMemoryCache();
}

然后,在控制器或服务中使用 IMemoryCache

 
public class HomeController : Controller
{private readonly IMemoryCache _cache;public HomeController(IMemoryImpl```csharp
public HomeController(IMemoryCache cache)
{_cache = cache;
}public IActionResult Index()
{var cacheKey = "myData";if (!_cache.TryGetValue(cacheKey, out string data)){data = GetDataFromDatabase();_cache.Set(cacheKey, data, TimeSpan.FromMinutes(10));}return View(data);
}private string GetDataFromDatabase()
{// 从数据库获取数据的逻辑return "Hello, World!";
}

2. 分布式缓存

分布式缓存允许多个实例共享缓存数据。ASP.NET Core 支持 Redis 和 SQL Server 作为分布式缓存后端。

以 Redis 为例,首先安装 Microsoft.Extensions.Caching.StackExchangeRedis NuGet 包:

 
dotnet add package Microsoft.Extensions.Caching.StackExchangeRedis

然后在 Startup.cs 文件中配置分布式缓存:

 
public void ConfigureServices(IServiceCollection services)
{services.AddStackExchangeRedisCache(options =>{options.Configuration = "localhost";options.InstanceName = "SampleInstance";});
}

在控制器或服务中使用分布式缓存:

 
public class HomeController : Controller
{private readonly IDistributedCache _cache;public HomeController(IDistributedCache cache){_cache = cache;}public async Task<IActionResult> Index(){var cacheKey = "myData";var data = await _cache.GetStringAsync(cacheKey);if (data == null){data = GetDataFromDatabase();await _cache.SetStringAsync(cacheKey, data, new DistributedCacheEntryOptions{AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10)});}return View(data);}private string GetDataFromDatabase(){// 从数据库获取数据的逻辑return "Hello, World!";}
}

3. 响应缓存

响应缓存允许您缓存 HTTP 响应,从而减少服务器的负载。ASP.NET Core 提供了 ResponseCaching 中间件来实现响应缓存。

首先,在 Startup.cs 文件中启用响应缓存:

 
public void ConfigureServices(IServiceCollection services)
{services.AddResponseCaching();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{app.UseResponseCaching();
}

然后,在控制器或操作方法上使用 [ResponseCache] 特性:

 
[ResponseCache(Duration = 60, Location = ResponseCacheLocation.Any, NoStore = false)]
public IActionResult Index()
{return View();
}

以上就是 ASP.NET Core 中常见的缓存方法。您可以根据实际需求选择合适的缓存策略,以提高应用程序的性能。


http://www.mrgr.cn/news/18385.html

相关文章:

  • 强化学习实践(一):Model Based 环境准备
  • 建模杂谈系列254 GMM的拟合
  • openwrt 原版系统个人优化
  • IntelliJ IDEA下载安装
  • 【C++ 面试 - STL】每日 3 题(四)
  • HTTP/2
  • ArrayList 和 LinkedList 之间的主要区别。在什么情况下你会选择使用 ArrayList 而不是 LinkedList,反之亦然?
  • RuoYi-Cloud 部署与配置 [CentOS7]
  • Python青少年简明教程:函数
  • 测试:TestGRPCDiscovery
  • 3A介绍-Authentication(认证)、Authorization(授权)和Accounting(计费/核算)
  • X86架构(六)——过程调用
  • 正则表达式优化建议
  • 【网络安全】Bingbot索引投毒实现储存型XSS
  • 数据解读——基于《择偶偏好中的性别差异和社会阶层异质性——基于选择实验法的探索》
  • 【最新华为OD机试E卷】最大报酬(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)
  • MFC dll无法显示tooltip问题
  • 仿论坛项目--第二部分习题
  • 【Next.js 入门指南】5分钟创建你的第一个 Next.js 应用
  • 华为云征文 | 华为云Flexus云服务器X实例之Docker环境下部署JmalCloud个人网盘