Informazioni su Cache Redis di Azure

La cache di Azure per Redis fornisce un archivio dati in memoria basato sul software Redis. 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.

Cache di Azure per Redis offre sia il prodotto Redis open source (OSS Redis) sia un prodotto commerciale di Redis Inc. (Redis Enterprise) come servizio gestito. Offre istanze del server Redis sicure e dedicate e compatibilità completa con l'API Redis. Microsoft gestisce il servizio, ospitato in Azure e utilizzabile da qualsiasi applicazione all'interno o all'esterno di Azure.

La cache di Azure per Redis può essere usata come cache del contenuto o dei dati distribuiti, archivio di sessioni, broker di messaggi e altro ancora. Può essere distribuito in modo autonomo. Oppure può essere distribuito con altri servizi di database di Azure, come Azure SQL o Azure Cosmos DB.

Scenari principali

La cache di Azure per Redis migliora le prestazioni delle applicazioni supportando modelli di architettura delle applicazioni comuni. Tra i modelli più comuni sono inclusi i seguenti:

Modello Descrizione
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 per i dati oppure usare criteri 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. Permette inoltre di ridurre il numero di server necessari per gestire i carichi. Cache di Azure per Redis fornisce il provider di cache di output per Redis per supportare questo modello con ASP.NET.
Archivio di sessioni Questo modello viene comunemente usato con i carrelli dei siti di e-commerce e altri dati della cronologia utente 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. L'uso di una cache interna alla memoria, come Cache di Azure per Redis, per associare informazioni a un utente, risulta più rapido rispetto all'interazione con un database relazionale completo.
Accodamento di messaggi e processi 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à. Cache di Azure per Redis fornisce 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. La cache di Azure per Redis supporta l'esecuzione di un batch di comandi come singola transazione.

Versioni di Redis

Cache di Azure per Redis supporta il software open source Redis versione 4.0.x e 6.0.x. È stato deciso di ignorare Redis 5.0 per offrire l'ultima versione. In precedenza, Cache di Azure per Redis manteneva solo una singola versione di Redis. In futuro, sarà possibile scegliere tra un aggiornamento più recente della versione principale e almeno una versione stabile precedente. È possibile scegliere la versione più adatta per l'applicazione.

Livelli di servizio

La cache di Azure per Redis è disponibile in questi livelli:

Livello Descrizione
Di base Una cache Redis software open source in esecuzione in una macchina virtuale singola. Questo livello non prevede alcun contratto di servizio ed è ideale per carichi di lavoro di sviluppo/test e non critici.
Standard Una cache Redis software open source in esecuzione in due macchine virtuali in una configurazione replicata.
Premium Cache Redis software open source a prestazioni elevate. Questo livello offre velocità effettiva maggiore, latenza minore, disponibilità migliore e un maggior numero di funzionalità. Le cache Premium vengono distribuite in macchine virtuali più potenti rispetto a quelle per le cache Basic o Standard.
Funzionalità per le aziende Cache a prestazioni elevate basate sul software Redis Enterprise di Redis Inc. Questo livello supporta i moduli Redis, tra cui RediSearch, RedisBloom, RedisJSON e RedisTimeSeries. Offre inoltre una disponibilità ancora più elevata rispetto al livello Premium.
Enterprise Flash Cache di grandi dimensioni convenienti basate sul software Redis Enterprise di Redis Inc. Questo livello estende l'archiviazione dei dati Redis alla memoria non volatile, che è più economica della DRAM, in una macchina virtuale. Riduce il costo complessivo della memoria per GB.

Confronto delle funzionalità

Nella pagina Prezzi di Cache di Azure per Redis è presente un confronto dettagliato dei livelli disponibili. La tabella seguente descrive alcune delle funzionalità supportate in base al livello:

Descrizione della funzionalità Di base Standard Premium Enterprise Enterprise Flash
Contratto di servizio (SLA) No
Crittografia di dati in transito
Isolamento rete
Ridimensionamento Anteprima Anteprima
Clustering di software open source No No
Persistenza dei dati No No Anteprima Anteprima
Ridondanza della zona No Anteprima Anteprima Disponibile Disponibile
Replica geografica No No Sì (passivo) Sì (attivo) Sì (attivo)
Log di controllo della connessione No No Sì (basato su sondaggi) Sì (basato su eventi) Sì (basato su eventi)
Moduli Redis No No No Anteprima
Importazione/Esportazione No No
Reboot No No
Aggiornare il canale e pianificare gli aggiornamenti No Numero

Nota

Attualmente, il livello Enterprise Flash supporta solo il modulo RediSearch (in anteprima) e il modulo RedisJSON.

Scelta del livello appropriato

Per la scelta di un livello per la cache di Azure per Redis, valutare le opzioni seguenti:

  • Memoria: i livelli Basic e Standard offrono da 250 MB a 53 GB, il livello Premium da 6 GB a 1,2 TB, il livello Enterprise da 1 GB a 2 TB e il livello Enterprise Flash da 300 GB a 4,5 TB. Per creare istanze della cache di dimensioni maggiori, è possibile usare lo scale-out. Per altre informazioni, vedere Prezzi di Cache Redis di Azure.
  • Prestazioni: le cache nei livelli Premium ed Enterprise sono distribuite in hardware con processori più veloci che offrono migliori prestazioni rispetto al livello Basic o Standard. In genere, il livello Enterprise offre prestazioni ottimali per la maggior parte dei carichi di lavoro, in particolare con istanze di cache più grandi. Per altre informazioni, vedere Test delle prestazioni.
  • Core dedicato per il server Redis: tutte le cache tranne C0 eseguono vCPU dedicate. I livelli Basic, Standard e Premium eseguono Redis open source, che fin dalla fase di progettazione usa un solo thread per l'elaborazione dei comandi. In questi livelli, la disponibilità di più vCPU solitamente migliora le prestazioni di velocità effettiva, poiché Cache di Azure per Redis usa altre vCPU per l'elaborazione di I/O o per i processi del sistema operativo. Tuttavia, l'aggiunta di più vCPU per ogni istanza potrebbe aumentare le prestazioni in modo non lineare. In questi livelli, uno scale-out consente solitamente di ottenere prestazioni migliori rispetto a uno scale-up. I livelli Enterprise ed Enterprise Flash vengono eseguiti in Redis Enterprise, che può usare più vCPU per istanza, con conseguente possibilità di migliorare significativamente le prestazioni rispetto ad altri livelli. Per i livelli Flash Enterprise ed Enterprise, è consigliabile eseguire lo scale-up prima dello scale-out. Per altre informazioni, vedere Partizionamento orizzontale e utilizzo della CPU.
  • Prestazioni della rete: in presenza di un carico di lavoro che richiede una velocità effettiva elevata, il livello Premium o Enterprise offre maggiore larghezza di banda rispetto al livello Standard o Basic. Anche all'interno di ogni livello, a dimensioni più grandi della cache corrisponde maggiore larghezza di banda, a causa della macchina virtuale sottostante che ospita la cache. Una larghezza di banda più elevata consente di evitare la saturazione della rete, che causa i timeout dell'applicazione. Per altre informazioni, vedere Test delle prestazioni.
  • Numero massimo di connessioni client: i livelli Premium ed Enterprise offrono il numero massimo di client che possono connettersi a Redis, con un numero maggiore di connessioni per cache di dimensioni più grandi. Il clustering aumenta la quantità totale di larghezza di banda della rete disponibile per una cache in cluster.
  • Disponibilità elevata: la cache di Azure per Redis offre più opzioni a disponibilità elevata. Garantisce la disponibilità di una cache di livello Standard, Premium o Enterprise in base al contratto di servizio. Il contratto di servizio copre solo la connettività agli endpoint cache. Il contratto di servizio non offre copertura per la protezione dalla perdita di dati. È consigliabile usare la funzionalità di persistenza dei dati Redis nei livelli Premium ed Enterprise per aumentare la resilienza contro la perdita di dati.
  • Persistenza dei dati: i livelli Premium ed Enterprise consentono di salvare i dati della cache in modo permanente, rispettivamente in un account di archiviazione di Azure e in un disco gestito. I problemi dell'infrastruttura sottostante possono comportare una potenziale perdita di dati. È consigliabile usare la funzionalità di persistenza dei dati Redis in questi livelli per aumentare la resilienza contro la perdita di dati. Cache di Azure per Redis offre le opzioni RDB e AOF (anteprima). La persistenza dei dati può essere abilitata tramite il portale di Azure e l'interfaccia della riga di comando. Per il livello Premium, vedere Come configurare la persistenza per una cache di Azure per Redis Premium.
  • Isolamento rete: le distribuzioni di collegamento privato e rete virtuale di Azure forniscono sicurezza avanzata e isolamento del traffico per la cache di Azure per Redis. La rete virtuale consente di limitare ulteriormente l'accesso tramite i criteri di controllo di accesso alla rete. Per altre informazioni, vedere Cache di Azure per Redis con collegamento privato di Azure e Come configurare il supporto di una rete virtuale per un'istanza di Cache Redis di Azure Premium.
  • Moduli Redis: i livelli Enterprise supportano RediSearch, RedisBloom, RedisTimeSeriese RedisJSON. Questi moduli aggiungono nuovi tipi di dati e funzionalità in Redis.

Una volta creata la cache, è possibile dimensionarla dal livello Basic al livello Premium. Il passaggio a un piano inferiore non è attualmente supportato. Per istruzioni dettagliate sul ridimensionamento, vedere Come ridimensionare Cache di Azure per Redis e Come ridimensionare: livelli Basic, Standard e Premium.

Considerazioni speciali per i livelli Enterprise

I livelli Enterprise si basano su Redis Enterprise, una variante commerciale di Redis di Redis Inc. I clienti pagano e ricevono una licenza per il software tramite un'offerta di Azure Marketplace. Cache di Azure per Redis gestisce l'acquisizione della licenza, in modo che non sia necessario eseguire questa operazione separatamente. Per procedere all'acquisto in Azure Marketplace, sono necessari i prerequisiti seguenti:

  • La sottoscrizione di Azure deve avere uno strumento di pagamento valido. I crediti di Azure o gli abbonamenti MSDN gratuiti non sono supportati.
  • L'organizzazione deve consentire gli acquisti in Azure Marketplace.
  • Se si usa un Marketplace privato, deve contenere l'offerta Enterprise di Redis Inc.

Importante

Cache di Azure per Redis Enterprise richiede servizi di bilanciamento del carico di rete standard che vengono addebitati separatamente dalle istanze della cache. Attualmente, questi costi vengono sostenuti da Cache di Azure per Redis e non vengono addebitati ai clienti. Ciò potrebbe cambiare in futuro. Per altre informazioni, vedere Prezzi di Bilanciamento del carico.

Se una cache Enterprise è configurata per più zone di disponibilità, i costi per il trasferimento dei dati vengono sostenuti da Cache di Azure per Redis e non vengono addebitati ai clienti. Ciò potrebbe cambiare in futuro, dato che il trasferimento dei dati potrebbe essere fatturato in base alle tariffe della larghezza di banda di rete standard

Inoltre, la persistenza dei dati aggiunge dischi gestiti. L'uso di queste risorse è gratuito durante l'anteprima pubblica della persistenza dei dati Enterprise. Ciò potrebbe cambiare quando la funzionalità sarà disponibile a livello generale.

Disponibilità per regione

Cache di Azure per Redis è in continua espansione in nuove aree geografiche. Per verificare la disponibilità di un prodotto in base all'area geografica, vedere Prodotti disponibili in base all'area geografica.