首页
/ FusionCache 2.1.0版本发布:集成输出缓存与EF二级缓存

FusionCache 2.1.0版本发布:集成输出缓存与EF二级缓存

2025-06-17 00:11:28作者:龚格成

项目简介

FusionCache是一个功能强大的.NET缓存库,它结合了内存缓存和分布式缓存的优势,提供了丰富的功能特性。该项目最突出的特点是支持多级缓存(L1+L2)、故障安全机制(Fail-Safe)、后台广播(Backplane)以及标签支持(Tagging)等功能,使其成为构建高性能、高可用性应用程序的理想选择。

2.1.0版本核心更新

1. 输出缓存集成

在ASP.NET Core中,输出缓存(Output Cache)是一个重要的性能优化手段。传统实现依赖于简单的内存缓存,而FusionCache 2.1.0版本通过实现IOutputCacheStore接口,为输出缓存带来了FusionCache的全部能力。

集成优势:

  • 保留内存缓存(L1)的高性能
  • 增加分布式缓存(L2)的持久性和高可用性
  • 通过Backplane实现即时缓存同步
  • 支持故障安全机制,确保系统稳定性

配置示例:

// 基础配置
services.AddFusionCache();
services.AddFusionOutputCache();
services.AddOutputCache(options => {
    options.AddPolicy("Expire2", builder => builder.Expire(TimeSpan.FromSeconds(2)));
});

// 高级配置(使用命名缓存和二进制序列化)
services.AddFusionCache("OutputCache")
    .WithSerializer(new FusionCacheProtoBufNetSerializer())
    .WithDistributedCache(new RedisCache(...))
    .WithBackplane(new RedisBackplane(...));

services.AddFusionOutputCache(options => {
    options.CacheName = "OutputCache";
});

序列化建议: 对于输出缓存这种处理二进制数据(HTTP响应)的场景,推荐使用原生二进制序列化器如protobuf-net、MessagePack或MemoryPack,而非JSON等文本序列化器,以获得最佳性能和最小存储开销。

2. Entity Framework二级缓存支持

FusionCache 2.1.0版本与EFCoreSecondLevelCacheInterceptor项目实现了无缝集成,为Entity Framework Core提供了透明的二级缓存解决方案。

技术特点:

  • 自动缓存查询结果
  • 支持缓存失效策略
  • 与FusionCache的多级缓存架构深度整合
  • 建议使用v5.1及以上版本以获得最佳兼容性

3. 后台广播改进

FusionCache的Backplane功能在此版本中得到了全面异步化增强:

  • 初始订阅过程完全异步化
  • 取消订阅过程完全异步化
  • 消息收发保持原有的异步特性

这些改进使得在高并发场景下的缓存同步更加可靠和高效。

4. 问题修复与优化

并行初始化问题修复: 修复了在高度并行初始化场景下可能出现的模型注册遗漏问题,确保了protobuf-net序列化器的稳定工作。

日志系统改进: 统一了各级缓存操作的日志级别,使调试信息更加一致和完整。现在L1和L2缓存操作都使用相同的日志级别,便于问题排查。

5. 新增系统流程图解

为了帮助开发者更好地理解FusionCache的内部工作机制,2.1.0版本新增了详细的系统流程图解,包括:

  • 基础缓存操作流程
  • 多级缓存交互示意图
  • 故障安全机制工作流程
  • 后台广播消息传递机制

这些图解对于理解复杂场景下的缓存行为非常有帮助。

升级建议

对于正在使用v2.0.0版本的用户,2.1.0版本提供了平滑的升级路径。新功能如输出缓存集成和EF二级缓存支持都可以按需采用,不会影响现有功能。

对于仍在使用v1.x版本的用户,建议先参考v2.0.0的迁移指南,了解标签系统等重大变更,然后再升级到最新版本。

总结

FusionCache 2.1.0版本通过深度集成ASP.NET Core输出缓存和Entity Framework二级缓存,进一步巩固了其作为.NET生态系统中功能最全面的缓存解决方案的地位。同时,在稳定性、可观测性和文档方面也做出了显著改进,使得开发者能够更轻松地构建高性能、高可用的应用程序。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
178
262
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
866
513
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
261
302
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
598
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K