Il Redis è un servizio di cache distribuito ad alta affidabilità che permette di memorizzare o persistere coppie di chiave/valore con logiche di invalidazione, sottoscrizione e scadenza. E' altamente prestazionale ed è considerato un punto di riferimento per progetti che necessitano di un layer di cache. Microsoft Azure dispone di un servizio che gestisce Redis in maniera del tutto automatica: pochi click e creiamo un'istanza pronta in ascolto. Di seguito la pagina di creazione raggiungibile come al solito dal portale Azure.

Una volta creato possiamo usare qualsiasi linguaggio per accedere ad essa. Nel caso di .NET esistono varie librerie, nessuna ufficiale, ma tra le consigliate c'è sicuramente StackExchange.Redis, disponibile attraverso NuGet. Una volta installata però non è sufficiente, perché i valori che possiamo memorizzare su Redis sono dei tipi primitivi. Per supportare anche la memorizzazione di strutture più complesse, consigliamo l'utilizzo di un'altra libreria che contiene anche vari serializzatori. Per esempio se volessimo serializzare in Json.NET i valori, possiamo scaricare il pacchetto NuGet StackExchange.Redis.Extensions.Newtonsoft.
Installate le librerie, l'utilizzo della cache è piuttosto semplice. Prima di tutto creiamo il serializzatore, poi il multiplexer, cioè il client che esegue la comunicazione vera e propria, ed infine il wrapper che serializza per noi il tutto, come nell'esempio.
// Creazione serializzatore Json.NET serializer = new NewtonsoftSerializer(); ConfigurationOptions options = new ConfigurationOptions(); options.AllowAdmin = true; options.AbortOnConnectFail = false; options.Ssl = configuration.Ssl; options.ConnectTimeout = configuration.Timeout; options.Password = configuration.Password; options.EndPoints.Add(configuration.Host, configuration.PortNumber); // Creazione multiplexer ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect(options); // Creazione wrapper cacheClient = new StackExchangeRedisCacheClient(multiplexer, serializer);
Aggiungere un elemento in cache è ancora più semplice, così come la sua lettura, come nell'esempio.
// Scrittura var data = new Data { Field1 = "ASPItalia.com", Field2 = 1 }; cacheClient.Add("chiave", data, DateTimeOffset.Now.AddMinutes(5)); // Lettura var data = cacheClient.Get<Data>("chiave");
Consigliamo di visionare la pagina di progetto per consultare altri sistemi di serializzazione.
https://github.com/imperugo/StackExchange.Redis.Extensions/
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione alle Container Queries
Gestire gli accessi con Token su Azure Container Registry
Utilizzare DeepSeek R1 con Azure AI
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Creare una libreria CSS universale - Rotazione degli elementi
Scrivere selettori CSS più semplici ed efficienti con :is()
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Gestione ciclo di vita in .NET Aspire
Gestione CSS in Blazor con .NET 9
Utilizzare WebJobs su Linux con Azure App Service
I più letti di oggi
- Niente .NET sui server: siamo Microsoft
- Una funzione per validare un indirizzo e-mail
- Impersonation di utente per l'esecuzione di codice in una pagina ASP.NET
- Tutorial ASP.NET 4.0
- Tutorial Entity Framework 5.0
- Solo 5 minuti all'inizio della keynote!! http://aspitalia.com/build-win8 #BldWin
- Windows Embedded Standard 8 disponibile in CTP. stessa base di #win8, componentizzabile, con supporto a #metro: http://aspitalia.com/6u
- disponibile il nuovo #adsdk per #win8. doc su https://aspit.co/ad3 donwload diretto da https://aspit.co/ad4
- #MIX10: Windows Phone - demo Hush Hush, un diario con interfaccia completamente personalizzata
- Scott Guthrie on stage: inizia la seconda keynote di //build/ https://aspit.co/build-14 #bldwin