Alcuni giorni fa il team .NET ha annunciato HybridCache, una nuova libreria per .NET 9 disponibile nel pacchetto Microsoft.Extensions.Caching.Hybrid
. Si tratta di una soluzione che migliora le performance di archiviazione e recupero dati combinando cache in memoria con cache distribuite come Redis. Garantisce inoltre livelli di prestazioni e sicurezza ottimali a prescindere dalle dimensioni e dalla complessità delle applicazioni.
Cosa è HybridCache
HybridCache semplifica alcuni task riducendo il codice ripetitivo legato alla serializzazione degli oggetti, all'implementazione del pattern cache-aside e alla gestione della coerenza dei dati. L'integrazione di cache in-memory e distribuite aumenta velocità e reattività delle applicazioni, con benefici particolari per sviluppatori di applicazioni ASP.NET Core impegnati in query complesse, architetture a microservizi o elaborazioni di dati in tempo reale.
La libreria supporta vari backend di cache già esistenti come Redis, SQL Server e Azure CosmosDB e offre un'API dedicata, protezione da cache-stampede e invalidazione tramite tag. Supporta poi le API di caching più recenti come IBufferDistributedCache
e fornisce flessibilità nella serializzazione dati. Ciò permette di utilizzare un formato come JSON garantendo sicurezza e autenticazione integrate.
Ottimizzazione e compatibilità con runtime precedenti
Come anticipato, HybridCache supporta la protezione contro la cache-stampede, situazione in cui numerosi client richiedono contemporaneamente dalla cache dei dati scaduti di recente. Questo fenomeno provoca elaborazioni ridondanti e sovraccarichi del database e rallenta le applicazioni. HybridCache risolve il problema tramite una singola elaborazione per richieste simultanee sul medesimo dato riuscendo così ad ottimizzare le risorse disponibili.
L'invalidazione tramite tag (cioè i valori stringa che categorizzano i dati in cache) consente agli sviluppatori di organizzare e cancellare dati dalla cache in modo più razionale. Permette infatti di rimuovere interi gruppi di elementi con un'unica chiamata API invece di doverli cancellare singolarmente. Una modalità che risulta particolarmente efficace per grandi volumi di dati memorizzati.
HybridCache è totalmente compatibile con runtime precedenti, come .NET Framework 4.7.2 e .NET Standard 2.0.