Come configurare il clustering Redis per una Cache Redis di Azure PremiumHow to configure Redis clustering for a Premium Azure Redis Cache

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.Azure Redis Cache has different cache offerings, which provide flexibility in the choice of cache size and features, including Premium tier features such as clustering, persistence, and virtual network support. In questo articolo viene descritto come configurare il clustering in un'istanza Premium di Cache Redis di Azure.This article describes how to configure clustering in a premium Azure Redis Cache instance.

Per informazioni su altre funzionalità di cache premium, vedere Introduzione al piano Premium di Cache Redis di Azure.For information on other premium cache features, see Introduction to the Azure Redis Cache Premium tier.

Che cos'è un cluster Redis?What is Redis Cluster?

Cache Redis di Azure offre funzionalità di clustering Redis come nell' implementazione in Redis.Azure Redis Cache offers Redis cluster as implemented in Redis. Con un cluster Redis si ottengono i vantaggi seguenti:With Redis Cluster, you get the following benefits:

  • Possibilità di suddividere automaticamente il set di dati tra più nodi.The ability to automatically split your dataset among multiple nodes.
  • 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.The ability to continue operations when a subset of the nodes is experiencing failures or are unable to communicate with the rest of the cluster.
  • Maggiore velocità effettiva: la velocità effettiva aumenta in modo lineare man mano che aumenta il numero di partizioni.More throughput: Throughput increases linearly as you increase the number of shards.
  • Dimensioni maggiori della memoria: l'incremento è lineare man mano che aumenta il numero di partizioni.More memory size: Increases linearly as you increase the number of shards.

Il clustering non aumenta il numero di connessioni disponibili per una cache in cluster.Clustering does not increase the number of connections available for a clustered cache. Per altre informazioni su dimensioni, velocità effettiva e larghezza di banda delle cache premium, vedere Quali offerte e dimensioni della Cache Redis è consigliabile usare?For more information about size, throughput, and bandwidth with premium caches, see What Redis Cache offering and size should I use?

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.In Azure, Redis cluster is offered as a primary/replica model where each shard has a primary/replica pair with replication where the replication is managed by Azure Redis Cache service.

ClusteringClustering

Le funzionalità di clustering vengono abilitate nel pannello Nuova cache Redis durante la creazione della cache.Clustering is enabled on the New Redis Cache blade during cache creation.

Per creare una cache Premium, accedere al portale di Azure e fare clic su Crea una risorsa > Database > Cache Redis.To create a premium cache, sign in to the Azure portal and click Create a resource > Databases > Redis Cache.

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.In addition to creating caches in the Azure portal, you can also create them using Resource Manager templates, PowerShell, or Azure CLI. Per altre informazioni sulla creazione di un'istanza di Cache Redis di Azure, vedere Creare una cache.For more information about creating an Azure Redis Cache, see Create a cache.

Per configurare le funzionalità Premium, selezionare prima di tutto uno dei piani tariffari Premium nell'elenco a discesa Piano tariffario.To configure premium features, first select one of the premium pricing tiers in the Pricing tier drop-down list. 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.For more information about each pricing tier, click View full pricing details and select a pricing tier from the Choose your pricing tier blade.

Scegliere il piano tariffario

Le funzionalità di clustering vengono configurate nel pannello Cluster Redis .Clustering is configured on the Redis Cluster blade.

Clustering

È possibile includere fino a 10 partizioni nel cluster.You can have up to 10 shards in the 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.Click Enabled and slide the slider or type a number between 1 and 10 for Shard count and click 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.Each shard is a primary/replica cache pair managed by Azure, and the total size of the cache is calculated by multiplying the number of shards by the cache size selected in the pricing tier.

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.Once the cache is created you connect to it and use it just like a non-clustered cache, and Redis distributes the data throughout the Cache shards. Se la diagnostica è abilitata, le metriche vengono acquisite separatamente per ogni partizione e possono essere visualizzate nel pannello della Cache Redis.If diagnostics is enabled, metrics are captured separately for each shard and can be viewed in the Redis Cache blade.

Nota

Sono richieste alcune lievi modifiche all'applicazione client quando le funzionalità di clustering vengono configurate.There are some minor differences required in your client application when clustering is configured. Per altre informazioni, vedere È necessario apportare modifiche all'applicazione client per usare il clustering?For more information, see Do I need to make any changes to my client application to use clustering?

Per un codice di esempio sull'uso del clustering con il client StackExchange.Redis, vedere la porzione clustering.cs dell'esempio Hello World.For sample code on working with clustering with the StackExchange.Redis client, see the clustering.cs portion of the Hello World sample.

Modificare la dimensione del cluster in una cache premium in esecuzioneChange the cluster size on a running premium cache

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.To change the cluster size on a running premium cache with clustering enabled, click Redis Cluster Size from the Resource menu.

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.While the Azure Redis Cache Premium tier has been released to General Availability, the Redis Cluster Size feature is currently in preview.

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.To change the cluster size, use the slider or type a number between 1 and 10 in the Shard count text box and click OK to save.

Aumentando la dimensione del cluster si aumentano la massima velocità effettiva e la dimensione massima della cache,Increasing the cluster size increases max throughput and cache size. ma non il numero massimo di connessioni disponibili per i client.Increasing the cluster size doesn't increase the max. connections available to clients.

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.Scaling a cluster runs the MIGRATE command, which is an expensive command, so for minimal impact, consider running this operation during non-peak hours. Durante il processo di migrazione, si noterà un picco di carico nel server.During the migration process, you will see a spike in server load. 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.Scaling a cluster is a long running process and the amount of time taken depends on the number of keys and size of the values associated with those keys.

Domande frequenti sul clusteringClustering FAQ

Nell'elenco seguente sono fornite le risposte alle domande poste comunemente sul clustering di Cache Redis di Azure.The following list contains answers to commonly asked questions about Azure Redis Cache clustering.

È necessario apportare modifiche all'applicazione client per usare il clustering?Do I need to make any changes to my client application to use clustering?

Come vengono distribuite le chiavi in un cluster?How are keys distributed in a cluster?

In base alla documentazione relativa al modello di distribuzione delle chiavi di Redis, lo spazio delle chiavi è suddiviso in 16384 slot.Per the Redis Keys distribution model documentation: The key space is split into 16384 slots. 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.Each key is hashed and assigned to one of these slots, which are distributed across the nodes of the cluster. È possibile configurare la parte della chiave sottoposta a hashing, per assicurare che più chiavi vengano inserite nella stessa partizione mediante i tag hash.You can configure which part of the key is hashed to ensure that multiple keys are located in the same shard using hash tags.

  • 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.Keys with a hash tag - if any part of the key is enclosed in { and }, only that part of the key is hashed for the purposes of determining the hash slot of a key. 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.For example, the following 3 keys would be located in the same shard: {key}1, {key}2, and {key}3 since only the key part of the name is hashed. Per un elenco completo di specifiche dei tag hash per le chiavi, vedere la pagina relativa ai tag hash per le chiavi.For a complete list of keys hash tag specifications, see Keys hash tags.
  • Chiavi senza tag hash: l'intero nome della chiave viene usato per l'hashing.Keys without a hash tag - the entire key name is used for hashing. Si otterrà una distribuzione statisticamente uniforme nelle partizioni della cache.This results in a statistically even distribution across the shards of the cache.

Per prestazioni e velocità effettiva ottimali, è consigliabile distribuire le chiavi in modo uniforme.For best performance and throughput, we recommend distributing the keys evenly. Se si usano chiavi con un tag hash, l'applicazione dovrà assicurare che le chiavi vengano distribuite in modo uniforme.If you are using keys with a hash tag it is the application's responsibility to ensure the keys are distributed evenly.

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.For more information, see Keys distribution model, Redis Cluster data sharding, and Keys hash tags.

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.For sample code on working with clustering and locating keys in the same shard with the StackExchange.Redis client, see the clustering.cs portion of the Hello World sample.

Quali sono le dimensioni massime della cache che è possibile creare?What is the largest cache size I can create?

Le dimensioni massime per la cache Premium sono 53 GB.The largest premium cache size is 53 GB. È possibile creare fino a 10 partizioni, per una dimensione massima di 530 GB.You can create up to 10 shards giving you a maximum size of 530 GB. Se è necessaria una dimensione maggiore, è possibile farne richiesta.If you need a larger size you can request more. Per altre informazioni, vedere Prezzi di Cache Redis di Azure.For more information, see Azure Redis Cache Pricing.

Tutti i client Redis supportano il clustering?Do all Redis clients support clustering?

Non tutti i client supportano attualmente il clustering Redis.At the present time not all clients support Redis clustering. StackExchange.Redis è uno dei client che supporta questa funzionalità.StackExchange.Redis is one that does support for it. Per altre informazioni su altri client, vedere la sezione dedicata alle prove con il cluster nell'esercitazione per il cluster Redis.For more information on other clients, see the Playing with the cluster section of the Redis cluster tutorial.

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.If you are using StackExchange.Redis as your client, ensure you are using the latest version of StackExchange.Redis 1.0.481 or later for clustering to work correctly. Per altre informazioni in caso di problemi con le eccezioni MOVE, vedere la sezione relativa alle eccezioni MOVE .If you have any issues with move exceptions, see move exceptions for more information.

Come ci si connette alla cache quando il clustering è abilitato?How do I connect to my cache when clustering is enabled?

È possibile connettersi alla cache con gli stessi endpoint, porte e chiavi usati per la connessione a una cache senza clustering abilitato.You can connect to your cache using the same endpoints, ports, and keys that you use when connecting to a cache that does not have clustering enabled. Redis gestisce il clustering sul back-end in modo che non sia necessario gestirlo dal client.Redis manages the clustering on the backend so you don't have to manage it from your client.

È possibile connettersi direttamente a singole partizioni della cache?Can I directly connect to the individual shards of my cache?

Questa operazione non è supportata ufficialmente.This is not officially supported. Ciò premesso, ogni partizione è costituita da una coppia di cache primaria/di replica nota complessivamente come un'istanza della cache.With that said, each shard consists of a primary/replica cache pair, collectively known as a cache instance. È possibile connettersi tramite l'utilità cli redis in queste istanze di cache nel ramo instabile del repository Redis in GitHub.You can connect to these cache instances using the redis-cli utility in the unstable branch of the Redis repository at GitHub. Questa versione implementa il supporto di base quando avviata con il passaggio -c .This version implements basic support when started with the -c switch. Per altre informazioni, vedere Playing with the cluster (Usare il cluster) all'indirizzo http://redis.io nell'esercitazione sul cluster Redis.For more information see Playing with the cluster on http://redis.io in the Redis cluster tutorial.

Per non-ssl usare i comandi seguenti.For non-ssl, use the following commands.

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.For ssl, replace 1300N with 1500N.

È possibile configurare il clustering per una cache creata in precedenza?Can I configure clustering for a previously created cache?

Al momento è possibile solo abilitare il clustering durante la creazione di una cache.Currently you can only enable clustering when you create a 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.You can change the cluster size after the cache is created, but you can't add clustering to a premium cache or remove clustering from a premium cache after the cache is created. Una cache premium con il clustering abilitato e una sola partizione è diversa da una cache premium delle stesse dimensioni senza cluster abilitato.A premium cache with clustering enabled and only one shard is different than a premium cache of the same size with no clustering.

È possibile configurare il clustering per una cache Basic o Standard?Can I configure clustering for a basic or standard cache?

Il clustering è disponibile esclusivamente per le cache Premium.Clustering is only available for premium caches.

È possibile usare il clustering con il provider di stato della sessione ASP.NET Redis e il provider di cache di output?Can I use clustering with the Redis ASP.NET Session State and Output Caching providers?

Usando StackExchange.Redis e il clustering si ottengono eccezioni MOVE. Cosa fare?I am getting MOVE exceptions when using StackExchange.Redis and clustering, what should I do?

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.If you are using StackExchange.Redis and receive MOVE exceptions when using clustering, ensure that you are using StackExchange.Redis 1.1.603 or later. Per le istruzioni di configurazione delle applicazioni .NET per l'uso di StackExchange.Redis, vedere l'articolo sulla configurazione dei client della cache.For instructions on configuring your .NET applications to use StackExchange.Redis, see Configure the cache clients.

Passaggi successiviNext steps

Informazioni su come usare altre funzionalità di cache premium.Learn how to use more premium cache features.