[ASP.NET] 用 HybridCache + Cookie 取代 Session,解決 Request 排隊與快取擊穿問題

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)。

...繼續閱讀 »

從 ASP.NET Core HybridCache 到瀏覽器端 HTTP Cache

續上篇 .NET 9 HybridCache 實戰,我們已介紹 Server\-Side 的快取架構(L1 記憶體快取、L2 分散式快取)。本篇將聚焦在 Client-Side 的快取機制(HTTP Cache):透過正確設定 HTTP 標頭,讓瀏覽器優先使用本地快取,降低伺服器負載並提升使用者體驗。

本篇會以實作程式碼示範各種 Cache-Control 指令的行為差異與適用情境。

...繼續閱讀 »

.NET 9 的混合式快取 HybridCache

在現代 Web 應用程式開發中,快取是提升應用程式效能不可或缺的技術。在過去,我們會使用 IMemoryCache 做記憶體快取,或者使用 IDistributedCache 做分散式快取。

.NET 9 引入了全新的 HybridCache,它結合了記憶體快取(L1)和分散式快取(L2)的優勢,讓我們能夠在同一個 API 中享受兩層快取的效能提升,同時還提供了快取雪崩保護和標籤管理等進階功能。

...繼續閱讀 »