Come ridimensionare Cache Redis di AzureHow to Scale Azure Redis Cache

Cache Redis di Azure dispone di diverse offerte di cache che offrono flessibilità nella scelta delle funzionalità e delle dimensioni della cache.Azure Redis Cache has different cache offerings, which provide flexibility in the choice of cache size and features. Se i requisiti dell'applicazione cambiano dopo la creazione di una cache, è possibile aumentare o ridurre le dimensioni e il piano tariffario della cache.After a cache is created, you can scale the size and the pricing tier of the cache if the requirements of your application change. Questo articolo illustra come ridimensionare la cache nel portale di Azure e usando strumenti come Azure PowerShell e l'interfaccia della riga di comando di Azure.This article shows you how to scale your cache in both the Azure portal and using tools such as Azure PowerShell and Azure CLI.

Quando è necessario ridimensionare la cacheWhen to scale

È possibile usare le funzionalità di monitoraggio di Cache Redis di Azure per monitorare l'integrità e le prestazioni della cache e per determinare quando è necessario ridimensionarla.You can use the monitoring features of Azure Redis Cache to monitor the health and performance of your cache and help determine when to scale the cache.

Per determinare se è necessario un ridimensionamento è possibile monitorare le metriche seguenti.You can monitor the following metrics to help determine if you need to scale.

  • Carico server RedisRedis Server Load
  • Utilizzo della memoriaMemory Usage
  • Larghezza di banda della reteNetwork Bandwidth
  • Utilizzo di CPUCPU Usage

Se si determina che la cache non soddisfa più i requisiti dell'applicazione, è possibile ridimensionare la cache in base a un piano tariffario superiore o inferiore che sia adatto all'applicazione.If you determine that your cache is no longer meeting your application's requirements, you can scale to a larger or smaller cache pricing tier that is right for your application. Per altre informazioni su come determinare il tipo di piano tariffario della cache appropriato, vedere l'articolo relativo all' offerta e alle dimensioni di Cache Redis da usare.For more information on determining which cache pricing tier to use, see What Redis Cache offering and size should I use.

Ridimensionare una cacheScale a cache

Per ridimensionare la cache, accedere alla cache nel portale di Azure e fare clic su Ridimensionare nel menu Risorsa.To scale your cache, browse to the cache in the Azure portal and click Scale from the Resource menu.

Scalabilità

Selezionare il piano tariffario desiderato nel pannello Seleziona piano tariffario e fare clic su Seleziona.Select the desired pricing tier from the Select pricing tier blade and click Select.

Pricing tier

Il passaggio a un piano tariffario diverso è soggetto alle restrizioni seguenti:You can scale to a different pricing tier with the following restrictions:

  • Non è possibile passare da un piano tariffario superiore a uno inferiore.You can't scale from a higher pricing tier to a lower pricing tier.
    • Non è possibile passare da una cache Premium a una cache Standard o Basic.You can't scale from a Premium cache down to a Standard or a Basic cache.
    • Non è possibile passare da una cache Standard a una cache Basic.You can't scale from a Standard cache down to a Basic cache.
  • È possibile passare da una cache Basic a una cache Standard, ma non è possibile modificare contemporaneamente la dimensione.You can scale from a Basic cache to a Standard cache but you can't change the size at the same time. Se occorre una dimensione diversa, è possibile eseguire successivamente un'operazione di ridimensionamento in base ai propri requisiti.If you need a different size, you can do a subsequent scaling operation to the desired size.
  • Non è possibile passare direttamente da una cache Basic a una cache Premium.You can't scale from a Basic cache directly to a Premium cache. È necessario passare da Basic a Standard con una prima operazione di ridimensionamento e quindi da Standard a Premium con una successiva operazione.You must scale from Basic to Standard in one scaling operation, and then from Standard to Premium in a subsequent scaling operation.
  • Non è possibile passare da una dimensione maggiore alla dimensione C0 (250 MB) .You can't scale from a larger size down to the C0 (250 MB) size.

Mentre è in corso il ridimensionamento della cache in base al nuovo piano tariffario, nel pannello Cache Redis viene visualizzato lo stato Ridimensionamento.While the cache is scaling to the new pricing tier, a Scaling status is displayed in the Redis Cache blade.

Ridimensionamento

Al termine dell'operazione, lo stato passa da Ridimensionamento a In esecuzione.When scaling is complete, the status changes from Scaling to Running.

Come automatizzare un'operazione di ridimensionamentoHow to automate a scaling operation

Oltre a usare il portale di Azure, per ridimensionare le istanze di Cache Redis di Azure è possibile usare i cmdlet di PowerShell, l'interfaccia della riga di comando di Azure e le librerie di gestione di Microsoft Azure.In addition to scaling your cache instances in the Azure portal, you can scale using PowerShell cmdlets, Azure CLI, and by using the Microsoft Azure Management Libraries (MAML).

Ridimensionare la cache tramite PowerShellScale using PowerShell

È possibile ridimensionare le istanze di Cache Redis di Azure con PowerShell usando il cmdlet Set-AzureRmRedisCache quando le proprietà Size, Sku o ShardCount vengono modificate.You can scale your Azure Redis Cache instances with PowerShell by using the Set-AzureRmRedisCache cmdlet when the Size, Sku, or ShardCount properties are modified. L'esempio seguente illustra come ridimensionare una cache denominata myCache in una cache di 2,5 GB.The following example shows how to scale a cache named myCache to a 2.5 GB cache.

Set-AzureRmRedisCache -ResourceGroupName myGroup -Name myCache -Size 2.5GB

Per altre informazioni sul ridimensionamento con PowerShell, vedere le istruzioni per ridimensionare una cache Redis mediante PowerShell.For more information on scaling with PowerShell, see To scale a Redis cache using Powershell.

Ridimensionare la cache tramite l'interfaccia della riga di comando di AzureScale using Azure CLI

Per ridimensionare le istanze di Cache Redis di Azure con l'interfaccia della riga di comando di Azure, chiamare il comando azure rediscache set e passare le modifiche di configurazione desiderate che includono una nuova dimensione della cache, SKU o dimensione del cluster, a seconda dell'operazione di ridimensionamento desiderata.To scale your Azure Redis Cache instances using Azure CLI, call the azure rediscache set command and pass in the desired configuration changes that include a new size, sku, or cluster size, depending on the desired scaling operation.

Per altre informazioni sul ridimensionamento tramite l'interfaccia della riga di comando di Azure, vedere Modificare le impostazioni di una Cache Redis esistente.For more information on scaling with Azure CLI, see Change settings of an existing Redis Cache.

Ridimensionare la cache tramite le librerie di gestione di Microsoft AzureScale using MAML

Per ridimensionare le istanze di Cache Redis di Azure usando le librerie di gestione di Microsoft Azure, chiamare il metodo IRedisOperations.CreateOrUpdate e passare la nuova dimensione di RedisProperties.SKU.Capacity.To scale your Azure Redis Cache instances using the Microsoft Azure Management Libraries (MAML), call the IRedisOperations.CreateOrUpdate method and pass in the new size for the RedisProperties.SKU.Capacity.

static void Main(string[] args)
{
    // For instructions on getting the access token, see
    // https://azure.microsoft.com/documentation/articles/cache-configure/#access-keys
    string token = GetAuthorizationHeader();

    TokenCloudCredentials creds = new TokenCloudCredentials(subscriptionId,token);

    RedisManagementClient client = new RedisManagementClient(creds);
    var redisProperties = new RedisProperties();

    // To scale, set a new size for the redisSKUCapacity parameter.
    redisProperties.Sku = new Sku(redisSKUName,redisSKUFamily,redisSKUCapacity);
    redisProperties.RedisVersion = redisVersion;
    var redisParams = new RedisCreateOrUpdateParameters(redisProperties, redisCacheRegion);
    client.Redis.CreateOrUpdate(resourceGroupName,cacheName, redisParams);
}

Per altre informazioni, vedere l'esempio relativo alla gestione di Cache Redis tramite le librerie di gestione di Microsoft Azure .For more information, see the Manage Redis Cache using MAML sample.

Domande frequenti relative al ridimensionamentoScaling FAQ

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

È possibile eseguire un ridimensionamento verso, da o in una cache Premium?Can I scale to, from, or within a Premium cache?

  • Non è possibile passare da una cache Premium a un piano tariffario Basic o Standard.You can't scale from a Premium cache down to a Basic or Standard pricing tier.
  • È possibile scalare dal piano tariffario di una cache Premium a un altro.You can scale from one Premium cache pricing tier to another.
  • Non è possibile passare direttamente da una cache Basic a una cache Premium.You can't scale from a Basic cache directly to a Premium cache. È necessario prima passare da Basic a Standard con un'operazione di ridimensionamento e quindi da Standard a Premium con una successiva operazione.You must first scale from Basic to Standard in one scaling operation, and then from Standard to Premium in a subsequent scaling operation.
  • Se è stato abilitato il clustering durante la creazione della cache Premium , è possibile modificare la dimensione della cache.If you enabled clustering when you created your Premium cache, you can change the cluster size. Se la cache è stata creata senza clustering abilitato, non è possibile configurare il clustering in un secondo momento.If your cache was created without clustering enabled, you can't configure clustering at a later time.

    Per altre informazioni, vedere Come configurare il clustering per una Cache Redis di Azure Premium.For more information, see How to configure clustering for a Premium Azure Redis Cache.

Dopo il ridimensionamento, è necessario modificare il nome della cache o le chiavi di accesso?After scaling, do I have to change my cache name or access keys?

No, il nome della cache e le chiavi restano invariati durante un'operazione di ridimensionamento.No, your cache name and keys are unchanged during a scaling operation.

Come funziona il ridimensionamento?How does scaling work?

  • Quando viene ridimensionata una cache Basic , essa viene chiusa e viene eseguito il provisioning di una nuova cache utilizzando la nuova dimensione.When a Basic cache is scaled to a different size, it is shut down and a new cache is provisioned using the new size. Durante questo periodo, la cache non è disponibile e tutti i dati nella cache vengono persi.During this time, the cache is unavailable and all data in the cache is lost.
  • Quando una cache Basic viene ridimensionata in una cache Standard, viene effettuato il provisioning di una cache di replica e i dati vengono copiati dalla cache principale alla cache di replica.When a Basic cache is scaled to a Standard cache, a replica cache is provisioned and the data is copied from the primary cache to the replica cache. Durante il processo di ridimensionamento, la cache rimane disponibile.The cache remains available during the scaling process.
  • Quando si ridimensiona una cache Standard passando a una dimensione maggiore o a una cache Premium, una delle repliche viene arrestata, ne viene rieffettuato il provisioning in base alla nuova dimensione e i dati vengono trasferiti. Viene quindi eseguito il failover dell'altra replica e successivamente ne viene rieffettuato il provisioning, in modo analogo a quanto accade in caso di errore di uno dei nodi della cache.When a Standard cache is scaled to a different size or to a Premium cache, one of the replicas is shut down and re-provisioned to the new size and the data transferred over, and then the other replica performs a failover before it is re-provisioned, similar to the process that occurs during a failure of one of the cache nodes.

Durante il ridimensionamento i dati nella cache andranno persi?Will I lose data from my cache during scaling?

  • Quando una cache Basic viene ridimensionata, tutti i dati vengono persi e la cache non è disponibile durante l'operazione di ridimensionamento.When a Basic cache is scaled to a new size, all data is lost and the cache is unavailable during the scaling operation.
  • Quando una cache Basic viene ridimensionata in una cache Standard, generalmente i dati nella cache vengono mantenuti.When a Basic cache is scaled to a Standard cache, the data in the cache is typically preserved.
  • Quando si aumenta la dimensione di una cache Standard o si passa a un piano tariffario superiore oppure quando si aumenta la dimensione di una cache Premium, in genere tutti i dati vengono mantenuti.When a Standard cache is scaled to a larger size or tier, or a Premium cache is scaled to a larger size, all data is typically preserved. Quando si riduce la dimensione di una cache Standard o Premium, i dati potrebbero andare persi in base al rapporto tra la quantità di dati nella cache e la nuova dimensione configurata.When scaling a Standard or Premium cache down to a smaller size, data may be lost depending on how much data is in the cache related to the new size when it is scaled. Se durante la riduzione i dati vengono persi, le chiavi vengono rimosse mediante il criterio di rimozione allkeys-lru .If data is lost when scaling down, keys are evicted using the allkeys-lru eviction policy.

L'impostazione databases personalizzata viene modificata durante il ridimensionamento?Is my custom databases setting affected during scaling?

Alcuni piani tariffari hanno limiti di database diversi, quindi esistono alcune considerazioni da tenere presente durante il passaggio a un piano inferiore se si è configurato un valore personalizzato per l'impostazione databases durante la creazione della cache.Some pricing tiers have different databases limits, so there are some considerations when scaling down if you configured a custom value for the databases setting during cache creation.

  • Quando si passa a piano tariffario con un limite di databases inferiore di quello del piano corrente:When scaling to a pricing tier with a lower databases limit than the current tier:
    • Se si usa il numero predefinito di databases che è 16 per tutti i piani tariffari, non viene perso alcun dato.If you are using the default number of databases which is 16 for all pricing tiers, no data is lost.
    • Se si usa un numero personalizzato di databases compreso nei limiti per il piano a cui si passa, questa impostazione di databases viene mantenuta e non viene perso alcun dato.If you are using a custom number of databases that falls within the limits for the tier to which you are scaling, this databases setting is retained and no data is lost.
    • Se si usa un numero personalizzato di databases che supera i limiti del nuovo piano, l'impostazione di databases viene ridotta ai limiti del nuovo piano e tutti i dati nei database rimossi vengono persi.If you are using a custom number of databases that exceeds the limits of the new tier, the databases setting is lowered to the limits of the new tier and all data in the removed databases is lost.
  • Quando si passa a un piano tariffario con un limite di databases uguale o superiore a quello del piano corrente, l'impostazione di databases viene mantenuta e non viene perso alcun dato.When scaling to a pricing tier with the same or higher databases limit than the current tier your databases setting is retained and no data is lost.

Si noti che mentre le cache Standard e Premium dispongono di un contratto di servizio pari al 99,9% di disponibilità, non esiste un contratto di servizio per la perdita dei dati.Note that while Standard and Premium caches have a 99.9% SLA for availability, there is no SLA for data loss.

La cache rimarrà disponibile durante il ridimensionamento?Will my cache be available during scaling?

  • Le cache Standard e Premium rimangono disponibili durante l'operazione di ridimensionamento.Standard and Premium caches remain available during the scaling operation.
  • Le cache Basic sono offline durante le operazioni di ridimensionamento a una dimensione diversa, ma rimangono disponibili quando si esegue il ridimensionamento da una cache Basic a una Standard.Basic caches are offline during scaling operations to a different size, but remain available when scaling from Basic to Standard.

Operazioni non supportateOperations that are not supported

  • Non è possibile passare da un piano tariffario superiore a uno inferiore.You can't scale from a higher pricing tier to a lower pricing tier.
    • Non è possibile passare da una cache Premium a una cache Standard o Basic.You can't scale from a Premium cache down to a Standard or a Basic cache.
    • Non è possibile passare da una cache Standard a una cache Basic.You can't scale from a Standard cache down to a Basic cache.
  • È possibile passare da una cache Basic a una cache Standard, ma non è possibile modificare contemporaneamente la dimensione.You can scale from a Basic cache to a Standard cache but you can't change the size at the same time. Se occorre una dimensione diversa, è possibile eseguire successivamente un'operazione di ridimensionamento in base ai propri requisiti.If you need a different size, you can do a subsequent scaling operation to the desired size.
  • Non è possibile passare direttamente da una cache Basic a una cache Premium.You can't scale from a Basic cache directly to a Premium cache. È necessario prima passare da Basic a Standard con un'operazione di ridimensionamento e quindi da Standard a Premium con una successiva operazione.You must first scale from Basic to Standard in one scaling operation, and then from Standard to Premium in a subsequent scaling operation.
  • Non è possibile passare da una dimensione maggiore alla dimensione C0 (250 MB) .You can't scale from a larger size down to the C0 (250 MB) size.

Se l'operazione di ridimensionamento non riesce, il servizio tenta di annullare l'operazione e la dimensione originale della cache viene ripristinata.If a scaling operation fails, the service will try to revert the operation and the cache will revert to the original size.

Quanto tempo richiede il ridimensionamento?How long does scaling take?

Il ridimensionamento richiede circa 20 minuti, a seconda della quantità di dati nella cache.Scaling takes approximately 20 minutes, depending on how much data is in the cache.

Come è possibile stabilire quando il ridimensionamento è completato?How can I tell when scaling is complete?

Nel portale di Azure è possibile visualizzare l'operazione di ridimensionamento in corso.In the Azure portal you can see the scaling operation in progress. Quando il ridimensionamento è completo, lo stato della cache passa a In esecuzione.When scaling is complete, the status of the cache changes to Running.