CacheManager:告别缓存复杂性,让NET缓存变得简单优雅

B站影视 内地电影 2025-05-16 08:51 2

摘要:CacheManager是一个开源的 .NET 缓存抽象层,使用 C# 编写,支持多种缓存提供程序并实现许多高级功能。其主要目标是简化开发者在复杂缓存场景中的工作,通过统一的接口和灵活的配置,让缓存逻辑更易维护和扩展。

CacheManager是一个开源的 .NET 缓存抽象层,使用 C# 编写,支持多种缓存提供程序并实现许多高级功能。其主要目标是简化开发者在复杂缓存场景中的工作,通过统一的接口和灵活的配置,让缓存逻辑更易维护和扩展。

多后端支持

CacheManager支持多种缓存技术,如内存缓存(System.Runtime.Caching 和 Microsoft.Extensions.Caching.Memory)、redis、Memcached(部分版本)等。

统一 API 接口

提供一致的 ICache接口,便于切换不同的缓存策略而不需大量修改代码。

分层缓存机制

可以轻松实现多级缓存结构,例如在分布式缓存前加一层本地内存缓存,提高读取性能,并由 CacheManager自动同步各层缓存。

过期与清除策略

支持滑动过期和绝对过期机制,并可通过区域(Region)管理批量清除缓存项。

更新操作控制

支持带锁或事务的更新操作,确保分布式环境下的数据一致性。

事件系统

提供丰富的事件钩子(如 OnGet, OnAdd, OnRemove),可监听缓存操作,甚至支持跨实例同步通知。

序列化支持

支持多种序列化方式,包括 Binary、JSON、Protocol Buffer、Bond 等,适用于不同性能和兼容性需求。

统计与日志

内置缓存操作统计计数器,并支持通过 Microsoft.Extensions.Logging进行日志记录。

CacheManagerCacheManager.Core

核心库,包含基本接口与抽象类

CacheManager.StackExchange.Redis

Redis 缓存支持

CacheManager.Microsoft.Extensions.Caching.Memory

基于 Microsoft.Extensions 的内存缓存支持

CacheManager.Serialization.Json

/ ProtoBuf/Bond/DataContract

不同序列化方式的支持包

安装(使用 NuGet CLI):

Install-Package CacheManager.Core
Install-Package CacheManager.StackExchange.Redis初始化内存缓存varcache = CacheFactory.Build("myCache", settings =>
{
settings.WithSystemRuntimeCacheHandle;
});初始化 Redis 缓存varredisConfig =newRedisConfiguration("localhost");
varcache = CacheFactory.Build("redisCache", settings =>
{
settings.WithRedis(redisConfig, serializer:newJsonCacheSerializer);
});基本缓存操作cache.Add("key1", "value1"); // 添加缓存
stringvalue;
if(cache.TryGet("key1",outvalue))// 获取缓存
{
Console.WriteLine(value);
}
cache.Put("key1", "newValue1");// 更新缓存
cache.Remove("key1");// 删除缓存设置缓存过期时间cache.Add("key1", "value1", ExpirationMode.Sliding, TimeSpan.FromMinutes(5));启用缓存区域cache.Add("region1", "keyA", "valueA"); // 在 region1 中添加缓存
cache.ClearRegion("region1");// 清除整个区域的所有缓存分布式缓存同步

通过 Redis 的发布/订阅机制实现多个应用实例间的缓存同步,确保所有节点缓存状态一致。

事件监听cache.OnAdd += (sender, args) =>
{
Console.WriteLine($"Item added: {args.Key}");
};统计信息Console.WriteLine($"Total gets: {cache.Statistics.GetCount}");CacheManager是一个强大且灵活的 .NET 缓存解决方案,不仅提供了对多种缓存系统的统一访问接口,还集成了诸如多层缓存、事件系统、序列化支持等高级功能。无论是构建小型应用还是大型分布式系统,CacheManager都能显著提升开发效率并优化缓存性能。

来源:opendotnet

相关推荐