Progettare una soluzione di memorizzazione nella cache

Completato

La memorizzazione nella cache è una tecnica comune che ha l'obiettivo di migliorare le prestazioni e la scalabilità del sistema. La memorizzazione nella cache copia temporaneamente i dati usati di frequente in una risorsa di archiviazione veloce vicina all'applicazione. Se questa risorsa di archiviazione rapida dei dati si trova più vicina all'applicazione rispetto all'archivio dati originale, la memorizzazione nella cache può migliorare significativamente i tempi di risposta per le applicazioni client fornendo i dati più rapidamente.

La memorizzazione nella cache è più efficace quando un'istanza di un client legge ripetutamente gli stessi dati, soprattutto se per l'archivio dati originale si verificano le condizioni seguenti:

  • L'archivio dati originale rimane relativamente statico.
  • È soggetto a un elevato livello di contesa.
  • È lontano e la latenza di rete può causare lentezza nell'accesso.

Si supponga che Tailwind Traders stia aggiungendo una nuova funzionalità all'applicazione demo del prodotto per aumentare il traffico dei clienti al sito Web di vendita al dettaglio. La funzionalità evento aggiunge un banner all'inizio dell'app per dispositivi mobili per annunciare offerte speciali e sconti di prodotto limitati. Le nuove offerte vengono pubblicate ogni ora e la disponibilità rimanente del prodotto per ogni offerta viene aggiornata dopo l'elaborazione di ogni ordine. Il primo cliente a rispondere a una nuova offerta riceve uno sconto doppio! I clienti sono invitati a controllare frequentemente l'app per dispositivi mobili per gli aggiornamenti alle offerte e alla disponibilità del prodotto. Per implementare questa nuova funzionalità, è necessario progettare una soluzione di memorizzazione nella cache che possa supportare operazioni di lettura e scrittura veloci in memoria.

Informazioni su Redis gestito di Azure

Redis gestito di Azure offre un archivio dati in memoria basato sullo stack Redis Enterprise. Redis migliora notevolmente le prestazioni e la scalabilità di un'applicazione che usa archivi dati back-end. È in grado di elaborare grandi volumi di richieste di applicazioni mantenendo nella memoria del server i dati a cui si accede di frequente, che possono essere scritti e letti rapidamente. Redis offre una soluzione di archiviazione dati strategica a bassa latenza e velocità effettiva elevata per le applicazioni moderne.

Importante

Cache di Azure per Redis è in fase di ritiro. Le nuove istanze vengono bloccate per i nuovi clienti a partire dal 1° aprile 2026 e il servizio verrà ritirato completamente il 1° ottobre 2028. Redis gestito di Azure è il servizio di cache attualmente consigliato.

Esaminiamo le caratteristiche di Azure Managed Redis:

  • Redis gestito di Azure è un servizio completamente gestito che viene eseguito nello stack Redis Enterprise (ga a partire da maggio 2025)

  • Azure Managed Redis offre quattro livelli di servizio:

    • Ottimizzato per la memoria: rapporto elevato tra memoria e vCPU per carichi di lavoro ad alto utilizzo di memoria
    • Bilanciato: configurazione standard per carichi di lavoro generali
    • Ottimizzato per il calcolo: rapporto elevato tra vCPU e memoria per la velocità effettiva massima
    • Ottimizzazione flash: soluzione conveniente per set di dati di grandi dimensioni che usano l'archiviazione flash NVMe
  • Redis gestito di Azure offre istanze del server Redis sicure e dedicate e la compatibilità completa dell'API Redis.

  • È possibile utilizzare Azure Managed Redis come cache distribuita di dati o contenuti, archivio delle sessioni o broker di messaggi.

  • Distribuire Redis gestito di Azure come autonomo o con altri servizi di database di Azure, ad esempio Azure SQL o Azure Cosmos DB.

Funzionamento di Redis gestito di Azure

Redis gestito di Azure è ospitato in Azure e utilizzabile da qualsiasi applicazione all'interno o all'esterno di Azure. Come indicato nell'immagine seguente, Azure Managed Redis consente di migliorare le prestazioni nelle app che si interfacciano con molte soluzioni di database, tra cui database SQL di Azure, Azure Cosmos DB e Database di Azure per MySQL.

Illustrazione che mostra un caso d'uso tipico per cache di Azure per Redis.

Aspetti da considerare quando si usa Redis gestito di Azure

Redis gestito di Azure migliora le prestazioni dell'applicazione supportando modelli di architettura delle applicazioni comuni. Quando si esaminano i modelli seguenti, prendere in considerazione quelli che potrebbero essere visualizzati nell'architettura dell'applicazione Tailwind Traders. Si pensi al modo in cui Azure Managed Redis può fornire i requisiti del modello.

Criterio Sceneggiatura Soluzione
Cache dei dati Spesso i database sono troppo grandi per essere caricati direttamente in una cache. È prassi comune usare il modello cache-aside per caricare dati nella cache solo in base alle esigenze. Quando il sistema apporta modifiche ai dati, può anche aggiornare la cache, che viene quindi distribuita ad altri client. Inoltre, il sistema può impostare una scadenza sui dati o usare un criterio di rimozione per attivare gli aggiornamenti dei dati nella cache.
Cache del contenuto Molte pagine Web vengono generate da modelli che usano contenuto statico, ad esempio intestazioni, piè di pagina e banner. Questi elementi statici non devono cambiare spesso. L'uso di una cache in memoria consente di accedere rapidamente al contenuto statico rispetto agli archivi dati back-end. Questo modello riduce il tempo di elaborazione e il carico del server, consentendo ai server Web di essere più reattivi. Una cache dei contenuti permette inoltre di ridurre il numero di server necessari per gestire i carichi. Managed Redis di Azure fornisce il Provider di cache di output Redis per supportare questo modello con ASP.NET.
Archivio di sessioni Un archivio di sessione viene comunemente usato con i carrelli acquisti e altri dati della cronologia degli utenti che un'applicazione Web potrebbe voler associare ai cookie degli utenti. L'archiviazione di troppe informazioni in un cookie può influire negativamente sulle prestazioni man mano che le dimensioni del cookie aumentano e il cookie viene passato e convalidato con ogni richiesta. Una tipica soluzione usa il cookie come chiave per eseguire query sui dati in un database. È più veloce usare una cache in memoria come Azure Managed Redis per associare le informazioni a un utente rispetto all'interazione con un database relazionale completo.
Accodamento di messaggi e processi Alcune operazioni dell'applicazione richiedono molto tempo per completarsi, il che potrebbero impedire l'avvio di altri processi o messaggi non correlati. Spesso le applicazioni aggiungono le attività a una coda quando l'esecuzione delle operazioni associate alla richiesta richiede tempo. Le operazioni a esecuzione prolungata vengono accodate per essere elaborate in sequenza, spesso da un altro server. Questo metodo di differimento del lavoro è noto come accodamento di attività. Redis gestito di Azure offre una coda distribuita per abilitare questo modello nell'applicazione.
Transazioni distribuite Talvolta le applicazioni richiedono una serie di comandi su un archivio dati back-end per l'esecuzione come singola operazione atomica. Tutti i comandi devono avere esito positivo o essere riportati allo stato iniziale. Azure Managed Redis supporta l'esecuzione di un batch di comandi come singola transazione.