HybridCache 混合缓存

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

在asp.net core 9中,引入了HyBridCache,它是一种混合缓存,可以与内存缓存和分布式缓存一起使用。通过添加对应的Service,可以选择使用不同的分布式缓存。示例代码展示了如何使用HyBridCache进行缓存操作。

🔎

延伸解读

HybridCache 的定位:复合而非替代

HybridCache 并非一种全新的缓存类型,而是对现有内存缓存和分布式缓存的复合使用。它本身不存储数据,而是依赖底层注册的缓存实现。默认情况下,AddHybridCache 基于内存缓存;若添加了分布式缓存服务(如 Redis),HybridCache 会同时利用两者。这种设计让开发者无需改变缓存操作方式,即可获得两级缓存的潜在优势。

配置方式:按需选择底层缓存

使用 HybridCache 前,需先注册具体的内存或分布式缓存服务。示例中通过 AddMemoryCache 和 AddStackExchangeRedisCache 分别配置了内存缓存和 Redis 分布式缓存,然后调用 AddHybridCache。若不添加分布式缓存,HybridCache 仅基于内存;若添加,则混合使用。这种灵活性允许开发者根据场景选择是否引入分布式缓存。

操作示例:三种缓存接口的对比

文章通过三个端点展示了不同缓存的使用:/time0 直接使用 IMemoryCache,/time1 使用 IDistributedCache 手动读写 Redis,/time2 使用 HybridCache 的 GetOrCreateAsync 方法。前两者需要开发者自行管理缓存逻辑,而 HybridCache 封装了获取或创建的流程,简化了代码。但具体底层命中哪一级缓存,文章未给出结论,建议读者自行实验。

❓

Q&A

什么是HyBridCache,它在asp.net core 9中的作用是什么?

HyBridCache是一种混合缓存,可以与内存缓存和分布式缓存一起使用,旨在提高缓存的灵活性和性能。

如何在asp.net core 9中配置HyBridCache?

可以通过添加内存缓存和分布式缓存的服务,然后调用builder.Services.AddHybridCache来配置HyBridCache。

HyBridCache与内存缓存和分布式缓存的关系是什么?

HyBridCache是基于内存缓存的,用户可以选择使用不同的分布式缓存,形成混合使用的效果。

能否提供HyBridCache的使用示例?

示例代码中,time0使用内存缓存,time1使用Redis分布式缓存,time2使用混合缓存。

使用HyBridCache时,默认的缓存类型是什么?

默认情况下,HyBridCache基于内存缓存,用户可以根据需要选择其他分布式缓存。

用户如何测试HyBridCache的效果?

用户可以自行实验混合缓存的使用效果,并将结果分享在文章的评论中。

➡️

继续阅读