cachemanager - 用 c# 編寫的 .net 的開源緩存抽象層

cachemanager - 用 c# 編寫的 .net 的開源緩存抽象層

cachemanager 是用 c# 編寫的 .net 的開源緩存抽象層。它支持各種緩存提供程式並實現了許多高級功能

最后更新 2022/7/8 上午7:03
黑哥聊dotNet
预计阅读 3 分钟
分类
.NET
标签
.NET C# 開源

簡介

CacheManager 是用 C# 编写的 .NET 的开源缓存抽象层。它支持各种缓存提供程序并实现了许多高级功能。

CacheManager 包的主要目标是让开发人员的生活更容易处理,即使是非常复杂的缓存场景。使用 CacheManager 可以实现多层缓存,例如在分布式缓存前的进程内缓存,只需几行代码。

CacheManager 不仅仅是一个统一各种缓存提供者的编程模型的接口,这将使以后在项目中更改缓存策略变得非常容易。它还提供其他功能,例如缓存同步、并发更新、序列化、事件、性能计数器……开发人员只有在需要时才可以选择加入这些功能。

功能列表

  • 一种处理不同缓存技术的通用接口:ICache
  • 可配置
  • 支持不同的緩存提供程式
  • 現在可以配置序列化。僅在分布式緩存中才需要序列化。如果沒有安裝和配置額外的序列化包,將使用二進位序列化
  • 使用分布式緩存的鎖或事務更新值。
  • 记录CacheManager 带有一个可扩展的记录 API
  • 類型緩存接口。
  • 多层 通过 CacheManager 管理多个缓存句柄,您可以轻松实现分层缓存
  • 缓存区域:即使某些缓存系统不支持或不实现缓存区域,CacheManager 也会实现该机制。例如,这可用于对元素进行分组并一次删除所有元素。
  • 統計信息:各種緩存操作的計數器。
  • 性能计数器:为了能够检查某些数字perfmon``,CacheManager 支持每个管理器实例和每个缓存句柄的性能计数器。
  • 事件系统:CacheManager 触发常见缓存操作的事件:OnGetOnAddOnPutOnRemoveOnClearOnClearRegion
  • System.Web.OutputCache实现使用 CacheManager 作为 OutputCache 提供者,这使得 OutputCache 非常灵活,例如通过在许多 Web 服务器上使用像 Redis 这样的分布式缓存。
  • 緩存客戶端同步 使用 redis 發布/訂閱功能實現

例子

private static void MostSimpleCacheManager()
{
    var config = new ConfigurationBuilder()
        .WithSystemRuntimeCacheHandle()
        .Build();

    var cache = new BaseCacheManager<string>(config);
    // or
    var cache2 = CacheFactory.FromConfiguration<string>(config);
}

private static void EventsExample()
{
    var cache = CacheFactory.Build<string>(s => s.WithDictionaryHandle());
    cache.OnAdd += (sender, args) => Console.WriteLine("Added " + args.Key);
    cache.OnGet += (sender, args) => Console.WriteLine("Got " + args.Key);
    cache.OnRemove += (sender, args) => Console.WriteLine("Removed " + args.Key);

    cache.Add("key", "value");
    var val = cache.Get("key");
    cache.Remove("key");
}

最後大家如果喜歡我的文章,還麻煩給個關注並點個讚, 希望 net 生態圈越來越好!

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/2/7

aot使用經驗總結

從項目創建伊始,就應養成良好的習慣,即只要添加了新功能或使用了較新的語法,就及時進行 aot 發布測試。

继续阅读