如何在 .NET Core Web API 应用程序中实现缓存
介绍
性能是应用程序的重要因素之一。影响应用程序性能的因素有很多(如数据库调用(查询)、Web 服务负载等)。我们必须更加专注于性能方面,以交付高质量的应用程序。为此,其中一个选项称为缓存。在本文中,我们将探讨什么是缓存以及如何在 .NET Core Web API 应用程序中实现缓存。
什么是缓存?
缓存是存储经常使用的数据的技术。通过消除对外部数据源的不必要请求,可以更快地为任何未来或后续请求提供这些数据。
为什么需要缓存机制?
有时我们的应用程序经常调用相同的方法并从数据库中获取数据。这些请求的输出始终相同。它不会在数据库中更改或更新。在这种情况下,我们可以使用缓存来减少数据库调用并直接从缓存中检索数据。
有 3 种类型的缓存可用,
- In-Memory Cache – 数据缓存在服务器的内存中。
- Persistent in-process Cache – 数据缓存在某个文件或数据库中。
- 分布式缓存– 数据缓存在共享缓存和多个进程中。示例: Redis 缓存
在本文中,我们主要关注 In-Memory Cache 机制。
内存缓存
In-Memory 缓存是指将缓存数据存储在服务器的内存中。
优点
- 它比其他缓存机制更容易和更快
- 减少 Web 服务/数据库的负载
- 提高性能
- 高度可靠
- 它适用于中小型应用。
缺点
- 如果缓存配置不正确,它可能会消耗服务器的资源。
- 增加维护。
- 可扩展性问题。适用于单台服务器。如果我们有很多服务器,那么不能将缓存共享给所有服务器。
如何在 ASP.NET Core Web API 应用程序中实现内存缓存
前提条件
按照以下步骤使用 Visual Studio 2019 创建 ASP.NET Web API。
第1步
打开 Visual Studio 2019,单击Create a new project。
第2步
选择ASP.NET Core Web 应用程序项目模板,然后单击下一步。
第 3 步
输入项目名称为Sample_Cache,然后单击 Next。
第四步
选择.NET Core 3.1和空项目,然后单击创建。
第 5 步
安装Microsoft.Extensions.Caching.Memory NuGet 包以实现内存缓存。
第 6 步
创建EmployeeController类并将内存缓存服务注入到构造函数中。
public class EmployeeController: ControllerBase {
private ICacheProvider _cacheProvider;
public EmployeeController(ICacheProvider cacheProvider) {
_cacheProvider = cacheProvider;
}
}
第 7 步
将services.AddMemoryCache()注册到Startup类 中的ConfigureServices()方法。
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
}
简单的缓存实现
让我们在EmployeeController类中添加以下代码。
EmployeeController.cs
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!