FusionCache
FusionCache 是一个使用 C# 编写的开源缓存框架,它的特点是开箱即用,具有高级弹性功能和可选的分布式缓存支持。
经过多年处理各种不同类型的缓存后,包括内存缓存、分布式缓存、http 缓存、CDN、浏览器缓存、离线缓存等等,我尝试将这些经验结合起来, 发起了 FusionCache 项目。
它使用内存缓存(标准 IMemoryCache 接口的任何实现)作为主要存储,并且可选分布式二级缓存(标准 IDistributedCache 接口的任何实现)作为辅助存储,这样可以实现更好的弹性和更高的性能。
在多节点分布式场景中,缓存变化时,每个节点会自动发送通知,来保持所有涉及的内存缓存完美同步,这些都是框架自动完成的。
快速入门
首先,通过 Nuget 安装 FusionCache。
PM> Install-Package ZiggyCreatures.FusionCache
注册 FusionCache 服务,如下
services.AddFusionCache()
.WithDefaultEntryOptions(new FusionCacheEntryOptions {
Duration = TimeSpan.FromMinutes(2)
})
现在,要从缓存中获取产品,如果不存在,就从数据库获取并设置了缓存和时间。
var id = 42;
cache.GetOrSet<Product>(
$"product:{id}",
_ => GetProductFromDb(id),
TimeSpan.FromSeconds(30)
);
就是这么简单~
项目集成使用 FusionCache 后,整体性能提升非常明显。
FusionCache 对分布式缓存的支持非常完善,FusionCache 可以保证多节点缓存更新的自动同步,以及节点故障后的自动恢复。
项目地址
https://github.com/ZiggyCreatures/FusionCache
文档更新时间: 2024-04-12 06:49 作者:admin