HybridCache是什么
在 .NET 9 中,Microsoft 将 HybridCache 带入了框架体系。
HybridCache 是一种新的缓存模型,设计用于封装本地缓存和分布式缓存,使用者无需担心选择缓存类型,从而优化性能和维护效率。
实际上,HybridCache 基于 IDistributedCache 提供的接口和操作,但增加了一些其他的特性,如封装两类不同缓存库(本地和分布),支持标签删除(Tag-based Cache Eviction)和约束选项。
需要注意的是,HybridCache仍处于preview阶段。
HybridCache 与 IDistributedCache 的区别
IDistributedCache:
HybridCache:
HybridCache 的好处
代码示例
以下代码展示如何使用 HybridCache:
1. 添加缓存服务
var builder = WebApplication.CreateBuilder(args);// 注册 HybridCache 服务
builder.Services.AddHybridCache();// 注册 Redis 缓存服务,为 HybridCache 提供分布式缓存
builder.Services.AddStackExchangeRedisCache(options =>
{options.Configuration = builder.Configuration.GetConnectionString("RedisConnectionString");
});builder.Services.AddControllers();
2. 实现接口操作
读取缓存
[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快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构