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 也會實作該機制。例如,這可用於對元素進行分組並一次刪除所有元素。
  • 統計資訊:各種快取操作的計數器。
  • 效能計數器:為了能夠檢查某些數字 perfmonCacheManager 支援每個管理員執行個體和每個快取控制代碼的效能計數器。
  • 事件系統: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 生態圈越來越好!

繼續探索

延伸閱讀

更多文章
同分類 / 同標籤 2026/2/7

AOT使用經驗總結

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

繼續閱讀