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