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
Utilizzare l nesting nativo dei CSS
Supportare la crittografia di ASP.NET Core con Azure Container App
Simulare Azure Cosmos DB in locale con Docker
Gestire progetti NPM in .NET Aspire
Potenziare la ricerca su Cosmos DB con Full Text Search
Path addizionali per gli asset in ASP.NET Core MVC
Anonimizzare i dati sensibili nei log di Azure Front Door
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Integrare LLM alle nostre applicazioni in .NET con MCP
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Creare una libreria CSS universale: Nav menu
Montare Azure Blob Storage su Linux con BlobFuse2
I più letti di oggi
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Creare un FAQ intelligente con QnAMaker
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Gli oggetti CallOut di Expression Blend 4.0


