系統重啟之後,所有快取全空,大量請求同時打到 DB,DB 直接噴掉了啦!!! 這就是快取雪崩(Cache Avalanche)的經典場景。 本文用 .NET 10 的 HybridCache 示範三種防護策略:TTL Jitter、分層 TTL、Circuit Breaker,並搭配整合測試驗證行為。

系統重啟之後,所有快取全空,大量請求同時打到 DB,DB 直接噴掉了啦!!! 這就是快取雪崩(Cache Avalanche)的經典場景。 本文用 .NET 10 的 HybridCache 示範三種防護策略:TTL Jitter、分層 TTL、Circuit Breaker,並搭配整合測試驗證行為。

ASP.NET Framework 的 Session 預設使用排他鎖(Mutex),同一個使用者的 Request 會排隊等待,嚴重影響效能。而 ASP.NET Core 的 Session 雖然不會排隊,但底層是 IDistributedCache,不支援 HybridCache,每次存取都直接打 Redis,沒有 L1 記憶體快取,高流量時有快取擊穿的風險。
這篇想要演練的是用 HybridCache + Cookie 實作一個 SessionCacheProvider,讓開發者用起來跟原本的 Session["key"] 幾乎一樣,同時支援 ASP.NET Framework 4.8 和 ASP.NET Core (.NET 10)。

續上篇 .NET 9 HybridCache 實戰,我們已介紹 Server\-Side 的快取架構(L1 記憶體快取、L2 分散式快取)。本篇將聚焦在 Client-Side 的快取機制(HTTP Cache):透過正確設定 HTTP 標頭,讓瀏覽器優先使用本地快取,降低伺服器負載並提升使用者體驗。
本篇會以實作程式碼示範各種 Cache-Control 指令的行為差異與適用情境。

在現代 Web 應用程式開發中,快取是提升應用程式效能不可或缺的技術。在過去,我們會使用 IMemoryCache 做記憶體快取,或者使用 IDistributedCache 做分散式快取。
.NET 9 引入了全新的 HybridCache,它結合了記憶體快取(L1)和分散式快取(L2)的優勢,讓我們能夠在同一個 API 中享受兩層快取的效能提升,同時還提供了快取擊穿保護和標籤管理等進階功能。
