用于.NET的缓存框架

本文关键字:框架 缓存 NET 用于 | 更新日期: 2023-09-27 18:20:10

在我正在开发的ASP.NET MVC应用程序中,有大量的静态数据(运行时没有对此表的更新/插入),我需要通过按不同列分组或汇总和聚合来检索这些数据。数学运算非常简单。

现在有很多调用被发送到存储库,这降低了控制器的响应速度。你能建议一个好的缓存框架吗?它允许我缓存存储库调用(使用相同的输入参数),而无需编写自定义代码

用于.NET的缓存框架

Memorycache只需将添加到存储库中即可满足您的需求

但请记住:

MemoryCache类类似于ASP.NET Cache类。MemoryCache类有许多用于访问缓存的属性和方法,如果您使用过ASP.NET cache类,这些属性和方法将是您熟悉的。Cache和MemoryCache类之间的主要区别在于,MemoryCache类别已更改,使其可由非ASP.NET应用程序的.NET Framework应用程序使用。例如,MemoryCache类对System.Web程序集没有依赖关系。另一个区别是,您可以创建MemoryCache类的多个实例,以便在同一应用程序和同一AppDomain实例中使用。

CacheManager

CacheManager是一个用C#编写的.NET开源缓存框架,可通过NuGet获得。它支持各种缓存提供程序,并实现了许多高级功能。

一开始很简单

var cache = CacheFactory.Build<string>(
    p => p.WithSystemRuntimeCacheHandle());

易于使用

cache.AddOrUpdate("key", "region", "value", _ => "update value");
cache.Expire("key", "region", TimeSpan.FromMinutes(1));
var val = cache.Get("key", "region");
var item = cache.GetCacheItem("key", "region");
cache.Put("key", "put value");