HybridCache 的目标是解决 IMemoryCache 和 IDistributedCache 的缺点。
HybridCache 提供的一些功能:
- - 进程内和进程外缓存的统一 API
- - 可配置的序列化
- - Stampede 保护
默认的入口点是GetOrCreateAsync方法,它实现了缓存旁模式。
- HybridCache 会尝试检索指定键的对象。
- 它会首先检查一级和二级缓存(如果配置了)。
- 如果未找到对象,它会调用工厂方法,并在返回之前将其存储起来。
HybridCache 还具有踩踏保护功能,确保只有一个针对给定键的并发请求可以执行工厂方法。
public class SomeService |
HybridCache 的主要功能包括
- 简化的应用程序接口:GetOrCreateAsync 方法允许开发人员指定缓存键和工厂方法,以便在不存在缓存值的情况下创建缓存值。
- 并发执行处理:HybridCache 可确保一个给定键只有一个并发调用者执行工厂方法,而其他调用者则等待结果。
- 可配置选项:开发人员可以使用 AddHybridCache 方法配置全局默认值,包括最大有效载荷大小、键长度和默认入口选项。
- 灵活的缓存入口选项:HybridCacheEntryOptions 对象允许覆盖特定缓存项的全局默认值,如过期时间。
- 性能改进:与传统的分布式缓存相比,HybridCache 具有显著的性能优势。在基准测试中,访问 HybridCache 的速度比访问单独的分布式缓存快约 1000 倍。
.NET 9 中引入的 HybridCache 标志着 ASP.NET Core 应用程序缓存功能的重大改进,为开发人员提供了更高效、更易用的缓存解决方案。