首页
/ 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生态系统中功能最全面的缓存解决方案的地位。同时,在稳定性、可观测性和文档方面也做出了显著改进,使得开发者能够更轻松地构建高性能、高可用的应用程序。

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

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
144
1.93 K
kernelkernel
deepin linux kernel
C
22
6
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
192
274
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
189
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
930
553
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
423
392
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
75
66
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.11 K
0
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
64
511