深度优化分布式缓存性能:微软推出.NET9中的HybridCache解决方案

下面是一个标准的 IDistributedCache 用例:

在这个用例中每次都要做很多事情,包括序列化/反序列化。如果缓存不存在/未命中,可能会有多个并发线程获取基础数据并序列化数据,并将所有数据推送到缓存中间件中,我们看到这里 分布式缓存使用上就没有 IMemoryCache 那么性能高效, 为此.NET团队在NET9中 添加了 HybridCache 解决这个痛点,

原理还是简单,使用本地的 IMemoryCache IDistributedCache 包装一层提供一个二级缓存包装的概念.

下面简单引用并注册一下服务:

minimal api中的简单用例:

HybridCache 通过本地的二级缓存避免了频繁的与分布式缓存服务器的交互以及成本高昂的类型转换(如果数据结构复杂庞大更甚)性能瞬间又提升了.

另外 HybridCache 是一个抽象类,微软默认的实现是二级到内存缓存,如果你有兴趣甚至可以无限封装扩展到其他的缓存中 比如你自己的 YourHybridCache

最后 Microsoft.Extensions.Caching.Hybrid 兼容 .NET Framework 4.7.2 and .NET Standard 2.0 这个也可以点个赞,对老系统升级比较友好!

多信息:
https://learn.microsoft.com/en-us/aspnet/core/performance/caching/hybrid?view=aspnetcore-9.0
用例代码:
https://GitHub.com/vipwan/Biwen.QuickApi/blob/net9/Biwen.QuickApi.DemoWeb/~DemoModular.cs

热门手游下载