
在 .NET 9 中,Microsoft 将 HybridCache 带入了框架体系。
HybridCache 是一种新的缓存模型,设计用于封装本地缓存和分布式缓存,使用者无需担心选择缓存类型,从而优化性能和维护效率。
实际上,HybridCache 基于 IDistributedCache 提供的接口和操作,但增加了一些其他的特性,如封装两类不同缓存库(本地和分布),支持标签删除(Tag-based Cache Eviction)和约束选项。
需要注意的是,HybridCache仍处于preview阶段。
IDistributedCache:
HybridCache:
HybridCache 的好处
以下代码展示如何使用 HybridCache:
var builder = WebApplication.CreateBuilder(args); // 注册 HybridCache 服务 builder.Services.AddHybridCache(); // 注册 Redis 缓存服务,为 HybridCache 提供分布式缓存 builder.Services.AddStackExchangeRedisCache(options => { options.Configuration = builder.Configuration.GetConnectionString("RedisConnectionString"); }); builder.Services.AddControllers();
读取缓存
[HttpGet("GetCache")] public async Task<string[]> Get() { return await _cache.GetOrCreateAsync( "a-1", async cancel => await Task.FromResult(Summaries) ); }
删除缓存
[HttpGet("DeleteCache")] public async Task<bool> Delete() { await _cache.RemoveAsync("a-1"); return true; }
通过标签读取缓存
[HttpGet("GetCacheByTag")] public async Task<string[]> GetCacheByTag() { var tags = new List<string> { "tag1", "tag2", "tag3" }; var entryOptions = new HybridCacheEntryOptions { Expiration = TimeSpan.FromMinutes(1), LocalCacheExpiration = TimeSpan.FromMinutes(1) }; return await _cache.GetOrCreateAsync( "a-1", async cancel => await Task.FromResult(Summaries), entryOptions, tags ); }
通过标签删除缓存
[HttpGet("DeleteCacheByTag")] public async Task<bool> DeleteCacheByTag() { var tags = new List<string> { "tag1" }; await _cache.RemoveByTagAsync(tags); return true; }
.NET 9 的 HybridCache 提供了一种便捷且高效的缓存解决方案,将本地缓存和分布式缓存无缝结合,为开发者简化了缓存逻辑,同时提供了更多高级功能,如标签管理和选项约束。通过代码示例可以看出,HybridCache 的操作直观且易于实现,非常适合现代应用场景。
如果你正在使用 .NET 9,尝试将 HybridCache 应用于你的项目中,体验其高效与简洁!
文章转载自:chester·chen
原文链接:https://www.cnblogs.com/chenyishi/p/18626831
体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构
到此这篇关于.NET 9 中的 多级缓存 HybridCache的文章就介绍到这了,更多相关.NET 多级缓存 HybridCache内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!