Come configurare il clustering Redis per una Cache Redis di Azure Premium

Cache Redis di Azure include diverse soluzioni cache che offrono flessibilità di scelta riguardo alle dimensioni e alle funzionalità della cache, tra cui le funzionalità del livello Premium come clustering, persistenza e supporto per reti virtuali. In questo articolo viene descritto come configurare il clustering in un'istanza Premium di Cache Redis di Azure.

Per informazioni su altre funzionalità di cache premium, vedere Introduzione al piano Premium di Cache Redis di Azure.

Che cos'è un cluster Redis?

Cache Redis di Azure offre funzionalità di clustering Redis come nell' implementazione in Redis. Con un cluster Redis si ottengono i vantaggi seguenti:

  • Possibilità di suddividere automaticamente il set di dati tra più nodi.
  • Possibilità di continuare le operazioni quando si verificano errori in un subset dei nodi oppure quando un subset dei nodi non è in grado di comunicare con il resto del cluster.
  • Maggiore velocità effettiva: la velocità effettiva aumenta in modo lineare man mano che aumenta il numero di partizioni.
  • Dimensioni maggiori della memoria: l'incremento è lineare man mano che aumenta il numero di partizioni.

Per altre informazioni su dimensioni, velocità effettiva e larghezza di banda delle cache premium, vedere Quali offerte e dimensioni della Cache Redis è consigliabile usare?

In Azure, il cluster Redis viene offerto nel modello primario/replica, in cui ogni partizione dispone di una coppia primario/di replica con la replica, in cui la replica viene gestita dal servizio Cache Redis di Azure.

Clustering

Le funzionalità di clustering vengono abilitate nel pannello Nuova cache Redis durante la creazione della cache.

Per creare una cache Premium, accedere al portale di Azure e fare clic su Nuovo > Database > Cache Redis.

Create cache

Nota

Oltre a creare cache nel portale di Azure, è possibile crearle usando modelli di Resource Manager, PowerShell o l'interfaccia della riga di comando di Azure. Per altre informazioni sulla creazione di un'istanza di Cache Redis di Azure, vedere Creare una cache.

Per configurare le funzionalità Premium, selezionare prima di tutto uno dei piani tariffari Premium nell'elenco a discesa Piano tariffario. Per altre informazioni sui diversi piani tariffari, fare clic su Visualizza i dettagli completi sui prezzi e selezionare un piano tariffario nel pannello Scegliere un piano tariffario.

Scegliere il piano tariffario

Le funzionalità di clustering vengono configurate nel pannello Cluster Redis .

Clustering

È possibile includere fino a 10 partizioni nel cluster. Fare clic su Abilitato e far scorrere il dispositivo di scorrimento o digitare un numero compreso tra 1 e 10 per Numero di partizioni, quindi fare clic su OK.

Ogni partizione è una coppia di cache primaria/di replica gestita da Azure e la dimensione totale della cache viene calcolata moltiplicando il numero di partizioni per la dimensione della cache selezionata nel piano tariffario.

clustering

Dopo aver creato la cache è possibile connettersi alla cache e usarla come una cache non in cluster e Redis distribuisce i dati tra le partizioni della cache. Se la diagnostica è abilitata, le metriche vengono acquisite separatamente per ogni partizione e possono essere visualizzate nel pannello della Cache Redis.

Nota

Sono richieste alcune lievi modifiche all'applicazione client quando le funzionalità di clustering vengono configurate. Per altre informazioni, vedere È necessario apportare modifiche all'applicazione client per usare il clustering?

Per un codice di esempio sull'uso del clustering con il client StackExchange.Redis, vedere la porzione clustering.cs dell'esempio Hello World.

Modificare la dimensione del cluster in una cache premium in esecuzione

Per modificare le dimensioni di un cluster per una cache premium in esecuzione con clustering abilitato, fare clic su Dimensioni cluster Redis nel menu Risorsa.

Nota

Si noti che mentre il livello Premium della Cache Redis di Azure è stato rilasciato pubblicamente, la funzionalità dimensione del cluster Redis è attualmente in anteprima.

Dimensione del cluster Redis

Per modificare la dimensione del cluster, usare il dispositivo di scorrimento oppure digitare un numero compreso tra 1 e 10 nella casella di testo Numero di partizioni e fare clic su OK per salvare.

Nota

Se si ridimensiona un cluster, viene eseguito il comando MIGRATE, che usa un elevato numero di risorse e di conseguenza, per ridurre l'impatto, si consiglia di eseguire questa operazione durante le ore non di punta. Durante il processo di migrazione, si noterà un picco di carico nel server. Il ridimensionamento di un cluster è un processo di lunga esecuzione e la quantità di tempo necessario dipende dal numero di chiavi e dalle dimensioni dei valori associati a tali chiavi.

Domande frequenti sul clustering

Nell'elenco seguente sono fornite le risposte alle domande poste comunemente sul clustering di Cache Redis di Azure.

È necessario apportare modifiche all'applicazione client per usare il clustering?

Come vengono distribuite le chiavi in un cluster?

In base alla documentazione relativa al modello di distribuzione delle chiavi di Redis, lo spazio delle chiavi è suddiviso in 16384 slot. Viene eseguito l'hashing di ogni chiave e le chiavi vengono assegnate a uno di questi slot, che vengono distribuiti in tutti i nodi del cluster. È possibile configurare la parte della chiave sottoposta a hashing, per assicurare che più chiavi vengano inserite nella stessa partizione mediante i tag hash.

  • Chiavi con tag hash: se una parte della chiave è racchiusa tra { e }, solo tale parte della chiave verrà sottoposta a hashing allo scopo di determinare lo slot hash di una chiave. Ad esempio, le 3 chiavi seguenti, {key}1, {key}2 e {key}3, si troveranno nella stessa partizione poiché solo la parte key del nome viene sottoposta a hashing. Per un elenco completo di specifiche dei tag hash per le chiavi, vedere la pagina relativa ai tag hash per le chiavi.
  • Chiavi senza tag hash: l'intero nome della chiave viene usato per l'hashing. Si otterrà una distribuzione statisticamente uniforme nelle partizioni della cache.

Per prestazioni e velocità effettiva ottimali, è consigliabile distribuire le chiavi in modo uniforme. Se si usano chiavi con un tag hash, l'applicazione dovrà assicurare che le chiavi vengano distribuite in modo uniforme.

Per altre informazioni, vedere le pagine relative al modello di distribuzione delle chiavi, al partizionamento orizzontale del cluster Redis e ai tag hash per le chiavi.

Per un codice di esempio sull'uso del clustering e sul posizionamento delle chiavi nella stessa partizione con il client StackExchange.Redis, vedere la porzione clustering.cs dell'esempio Hello World.

Quali sono le dimensioni massime della cache che è possibile creare?

Le dimensioni massime per la cache Premium sono 53 GB. È possibile creare fino a 10 partizioni, per una dimensione massima di 530 GB. Se è necessaria una dimensione maggiore, è possibile farne richiesta. Per altre informazioni, vedere Prezzi di Cache Redis di Azure.

Tutti i client Redis supportano il clustering?

Non tutti i client supportano attualmente il clustering Redis. StackExchange.Redis è uno dei client che supporta questa funzionalità. Per altre informazioni su altri client, vedere la sezione dedicata alle prove con il cluster nell'esercitazione per il cluster Redis.

Nota

Se si usa StackExchange.Redis come client, assicurarsi di usare la versione più recente di StackExchange.Redis 1.0.481 o versione successiva per il corretto funzionamento del clustering. Per altre informazioni in caso di problemi con le eccezioni MOVE, vedere la sezione relativa alle eccezioni MOVE .

Come ci si connette alla cache quando il clustering è abilitato?

È possibile connettersi alla cache con gli stessi endpoint, porte e chiavi usati per la connessione a una cache senza clustering abilitato. Redis gestisce il clustering sul back-end in modo che non sia necessario gestirlo dal client.

È possibile connettersi direttamente a singole partizioni della cache?

Questa operazione non è supportata ufficialmente. Ciò premesso, ogni partizione è costituita da una coppia di cache primaria/di replica nota complessivamente come un'istanza della cache. È possibile connettersi tramite l'utilità cli redis in queste istanze di cache nel ramo instabile del repository Redis in GitHub. Questa versione implementa il supporto di base quando avviata con il passaggio -c . Per altre informazioni vedere Playing with the cluster (Usare il cluster) all'indirizzo http://redis.io nell'esercitazione sul cluster Redis.

Per non-ssl usare i comandi seguenti.

Redis-cli.exe –h <<cachename>> -p 13000 (to connect to instance 0)
Redis-cli.exe –h <<cachename>> -p 13001 (to connect to instance 1)
Redis-cli.exe –h <<cachename>> -p 13002 (to connect to instance 2)
...
Redis-cli.exe –h <<cachename>> -p 1300N (to connect to instance N)

Per ssl, sostituire 1300N con 1500N.

È possibile configurare il clustering per una cache creata in precedenza?

Al momento è possibile solo abilitare il clustering durante la creazione di una cache. Dopo aver creato la cache, è possibile modificarne la dimensione, ma non è possibile aggiungere il clustering a una cache premium o rimuoverlo da una cache. Una cache premium con il clustering abilitato e una sola partizione è diversa da una cache premium delle stesse dimensioni senza cluster abilitato.

È possibile configurare il clustering per una cache Basic o Standard?

Il clustering è disponibile esclusivamente per le cache Premium.

È possibile usare il clustering con il provider di stato della sessione ASP.NET Redis e il provider di cache di output?

Usando StackExchange.Redis e il clustering si ottengono eccezioni MOVE. Cosa fare?

Se si usa StackExchange.Redis e si ricevono eccezioni MOVE quando si usa il clustering, assicurarsi di usare StackExchange.Redis 1.1.603 o versioni successive. Per le istruzioni di configurazione delle applicazioni .NET per l'uso di StackExchange.Redis, vedere l'articolo sulla configurazione dei client della cache.

Passaggi successivi

Informazioni su come usare altre funzionalità di cache premium.