Nei precedenti script ci siamo occupati a fondo del supporto alla cache distribuita in ASP.NET Core. Abbiamo già accennato come uno strumento simile sia una scelta praticamente obbligata quando abbiamo applicazioni nel cloud o, in generale, in load balancing: un layer di cache, comune a tutte le istanze, consente infatti di massimizzare le prestazioni e di togliere carico al database, migliorando di molto la scalabilità del sistema.
In fase di sviluppo, però, potremmo non avere a disposizione un'istanza di Redis Cache "personale", per cui ci potrebbe fare comodo sostituire alla cache distribuita una versione in memory.
Dato che le primitive per accedere alla cache sono esposte da un'interfaccia specifica, IDistributedCache (e da appositi TagHelper), non possiamo pensare di tornare a usare IMemoryCache: questo comporterebbe un rework e una duplicazione di codice praticamante ovunque nella nostra applicazione!
Fortunatamente esiste un provider per IDistributedCache che fa al caso nostro e implementa l'interfaccia sfruttando la cache in memory. Per attivarlo, basta registrarlo nel metodo AddServices di startup.cs:
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddDistributedMemoryCache(); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Collegare applicazioni server e client con .NET Aspire
Miglioramenti nell'accessibilità con Angular CDK
Managed deployment strategy in Azure DevOps
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Eseguire i worklow di GitHub su runner potenziati
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Migrare una service connection a workload identity federation in Azure DevOps
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Change tracking e composition in Entity Framework
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON