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
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Creare un'applicazione React e configurare Tailwind CSS
Utilizzare Azure AI Studio per testare i modelli AI
Ottenere un token di accesso per una GitHub App
Sostituire la GitHub Action di login su private registry
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare Model as a Service su Microsoft Azure
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare un service principal per accedere a Azure Container Registry
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Routing statico e PreRendering in una Blazor Web App