Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page décrit le comportement de votre instance Memorystore pour Redis Cluster pendant le scaling.
Vous pouvez ajuster la capacité de votre instance de différentes manières :
Vous pouvez modifier le nombre de segments pour votre instance. C'est ce qu'on appelle le scaling horizontal. Vous pouvez effectuer un scaling horizontal d'une instance de l'une des manières suivantes :
Scaling horizontal : augmentez la capacité de votre instance, ce qui lui donne plus de mémoire et de puissance de traitement pour gérer un plus grand volume de données ou de trafic. La capacité de votre instance est déterminée par le nombre de segments qu'elle contient.
En augmentant la capacité de votre instance, votre application peut gérer une demande accrue sans dégradation des performances. Pour effectuer un scaling horizontal d'une instance, ajoutez des partitions à l'instance.
Réduire la capacité : diminuez la capacité de votre instance, ce qui réduit à la fois la puissance de traitement et la quantité de mémoire disponible pour stocker les données. Cela se produit lorsque les besoins en données de votre application diminuent et que vous devez réduire votre utilisation des ressources pour économiser de l'argent. Pour réduire la taille d'une instance, diminuez le nombre de segments dans l'instance.
Vous pouvez modifier le type de nœud de votre instance. C'est ce qu'on appelle le scaling vertical.
Vous pouvez effectuer un scaling vertical d'une instance de l'une des manières suivantes :
Scaling à la hausse : augmentez la capacité de votre instance. La capacité de votre instance est déterminée par le type de nœud de votre instance. Pour effectuer un scaling vertical d'une instance, remplacez le type de nœud par un type de nœud plus grand. Par exemple, vous pouvez faire évoluer votre instance d'un type de nœud redis-standard-small vers un type de nœud redis-highmem-medium.
Scaling à la baisse : réduire la capacité de votre instance. Pour réduire la taille d'une instance, remplacez le type de nœud par un type plus petit. Par exemple, réduisez la taille de votre instance en passant d'un type de nœud redis-highmem-medium à un type de nœud redis-standard-small.
Impact du scaling
Lors d'une opération de scaling, la disponibilité de votre instance n'est pas affectée.
Toutefois, lorsque vous modifiez le nombre de partitions dans votre instance, Memorystore pour Redis Cluster rééquilibre l'espace de clés de l'instance. Cela peut entraîner une latence accrue lors de l'opération de scaling.
De plus, l'impact du scaling vertical de votre instance en modifiant le type de nœud est semblable à celui d'une opération de maintenance.
Scénarios d'échec
Si vous rencontrez une erreur lors de l'opération de scaling, cela est probablement dû à l'un des scénarios suivants :
Vous souhaitez mettre à jour le nombre de partitions de votre instance, mais vous ne disposez pas de suffisamment de mémoire libre pour le type de nœud redis-shared-core-nano de votre instance.
Pour résoudre ce problème, vous pouvez mettre à l'échelle votre instance ou libérer de la mémoire sur les nœuds de votre instance. Pour libérer de la mémoire, procédez comme suit :
Remplacez IP_ADDRESS et PORT_NUMBER par les valeurs que vous avez notées à l'étape précédente.
Notez l'adresse IP et le numéro de port d'un nœud qui ne dispose pas de suffisamment d'espace libre. L'ID de ce nœud correspond à un ID qui apparaît dans l'erreur.
Pour vous connecter à ce nœud, utilisez la commande suivante :
redis-cli -h IP_ADDRESS -p PORT_NUMBER
Remplacez IP_ADDRESS et PORT_NUMBER par les valeurs que vous avez notées à l'étape précédente.
À l'invite, saisissez la commande info memory.
Dans le résultat, les valeurs des paramètres used_memory et maxmemory s'affichent. used_memory correspond à la quantité de mémoire utilisée par le nœud et maxmemory à la quantité de mémoire disponible pour le nœud.
Divisez la valeur du paramètre used_memory par celle du paramètre maxmemory, puis vérifiez que le quotient est supérieur à 98 %.
Saisissez à nouveau la commande info memory. Dans le résultat, la valeur du paramètre used_memory est plus petite.
Divisez la valeur du paramètre used_memory par celle du paramètre maxmemory, puis vérifiez que le quotient est désormais inférieur à 98 %.
Si ce n'est pas le cas, supprimez d'autres clés.
Pour tous les autres nœuds qui ne disposent pas de suffisamment d'espace libre, répétez les étapes 4 à 11 de cette procédure.
Vous avez réduit le nombre de partitions, qui n'est pas suffisant pour contenir toutes les clés stockées par Memorystore for Redis Cluster dans l'instance d'origine. Pour résoudre ce problème, augmentez le nombre de partitions afin de pouvoir stocker toutes les clés. Pour savoir comment augmenter le nombre de partitions de votre instance, consultez Faire évoluer le nombre de partitions.
Vous avez effectué un scaling vers un type de nœud plus petit qui n'a pas la capacité de contenir toutes les données que Memorystore pour Redis Cluster stocke dans le type de nœud d'origine. Si cela se produit, Memorystore for Redis Cluster vous recommande un type de nœud pour effectuer un scaling vertical à la baisse.
Vous avez modifié le type de nœud de votre instance et vous avez écrasé les paramètres par défaut du type de nœud d'origine, ou ces paramètres ont déjà été écrasés. Toutefois, le nouveau type de nœud mis à l'échelle ne prend pas en charge les valeurs des paramètres par défaut ou les paramètres ne sont pas valides pour le type de nœud. Dans ce cas, Memorystore for Redis Cluster renvoie une erreur. Pour résoudre ce problème, modifiez manuellement les paramètres afin qu'ils soient valides pour le nouveau type de nœud.
Vous avez mis à l'échelle votre instance pendant une période de forte pression d'écriture (par exemple, lors d'un test de charge). Pour résoudre ce problème, effectuez le scaling pendant les périodes de faible trafic d'instance.
Vous disposez d'un emplacement contenant une clé volumineuse et vous souhaitez migrer cette clé vers un autre nœud. Toutefois, ce nœud ne dispose pas de suffisamment de mémoire pour prendre en charge la clé. Par conséquent, vous ne pouvez pas mettre à jour votre cluster. Pour résoudre ce problème, réduisez la taille de la clé et réessayez l'opération de mise à jour.
Le numéro d'emplacement qu'un nœud d'un cluster possède n'est pas connu, mais seule la plage d'emplacements l'est. Memorystore for Redis Cluster renvoie un message d'erreur. Si cela se produit, réduisez la taille de la clé et réessayez l'opération de mise à jour.
Vous avez effectué un scaling horizontal vers un nombre de shards plus petit, mais Memorystore pour Redis Cluster ne dispose pas de suffisamment de mémoire pour répondre à cette demande. Pour résoudre ce problème, revenez au nombre de partitions initial, qui était plus élevé.
Bonnes pratiques
Pour vous aider à adapter la capacité de votre instance et à augmenter la vitesse et la fiabilité de son scaling, effectuez-le pendant les périodes de faible trafic, dans la mesure du possible. Pour savoir comment surveiller le trafic des instances, consultez Surveiller les clusters.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["# About scaling instance capacity\n\nThis page describes how your Memorystore for Redis Cluster instance behaves\nduring scaling.\n\nYou can scale the capacity for your instance in the following ways:\n\n- You can change the number of shards for your instance. This is *horizontal\n scaling*. You can scale an instance horizontally in one of the following ways:\n\n - **Scale out**: increase the capacity of your instance, which gives the\n instance more memory and processing power to handle a larger volume of data or\n traffic. Your instance's capacity is determined by the number of shards in\n your instance.\n\n By scaling your instance out, your application can handle an increased\n demand without performance degradation. To scale an instance out, add\n shards to the instance.\n - **Scale in**: reduce the capacity of your instance, which decreases both the\n processing power and the amount of memory available to store data. This occurs\n when your application's data demands decrease and you need to lower your\n resource usage to save costs. To scale an instance in, reduce the number of\n shards in the instance.\n\n- You can change the node type for your instance. This is *vertical scaling*.\n You can scale an instance vertically in one of the following ways:\n\n - **Scale up** : increase the capacity of your instance. Your instance's capacity is determined by your instance's node type. To scale an instance up, change the node type to a larger node type. For example, scale your instance up from a `redis-standard-small` node type to a `redis-highmem-medium` node type.\n - **Scale down** : reduce the capacity of your instance. To scale an instance\n down, change the node type to a smaller node type. For example, scale your\n instance down from a `redis-highmem-medium` node type to a `redis-standard-small`\n node type.\n\n | **Important:** If you want to scale the node type for your instance down, and you haven't overwritten the default settings for the original node type, then Memorystore for Redis Cluster modifies the default settings to those of the scaled node type.\n\n| **Note:** For more information about the different types and sizes of shards and nodes, see [Cluster and node specification](/memorystore/docs/cluster/cluster-node-specification). To learn more about scaling a Memorystore for Redis Cluster instance, see [Scale instance capacity](/memorystore/docs/cluster/scale-instance-capacity).\n\nImpact of scaling\n-----------------\n\nDuring a scaling operation, the availability of your instance isn't impacted.\nHowever, when you change the number of shards in your instance, Memorystore for Redis Cluster rebalances the instance's keyspace. This\nmight cause increased latency during the scaling operation.\n\nAlso, the impact of scaling your instance vertically by changing the node type\nis similar to what happens with a [maintenance](/memorystore/docs/cluster/about-maintenance) operation.\n\nFailure scenarios\n-----------------\n\nIf you encounter an error during the scaling operation, then it's likely because\nof one of the following scenarios:\n\n- You want to update the shard count for your instance, but you don't have\n enough free memory for the `redis-shared-core-nano` node type for your instance.\n\n To resolve this issue, you can either [scale your instance up](/memorystore/docs/cluster/scale-instance-capacity#scale_the_node_type) or free memory from the nodes of\n your instance. To free memory, do the following:\n 1. [Connect to a Memorystore for Redis Cluster instance](/memorystore/docs/cluster/connect-cluster-instance).\n 2. To get details about the instance, including the IP address and port number, use the [`gcloud redis clusters describe`](/sdk/gcloud/reference/redis/clusters/describe) command.\n 3. Make a note of the IP address and port number of the instance.\n 4. To get information about the nodes of the instance, use the following\n command:\n\n ```\n redis-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes\n ```\n\n Replace \u003cvar translate=\"no\"\u003eIP_ADDRESS\u003c/var\u003e and \u003cvar translate=\"no\"\u003ePORT_NUMBER\u003c/var\u003e with the values that\n you noted in the previous step.\n 5. Make a note of the IP address and port number of a node that doesn't have\n enough free space. This node's ID matches an ID that appears in the error.\n\n 6. To connect to this node, use the following command:\n\n ```\n redis-cli -h IP_ADDRESS -p PORT_NUMBER\n ```\n\n Replace \u003cvar translate=\"no\"\u003eIP_ADDRESS\u003c/var\u003e and \u003cvar translate=\"no\"\u003ePORT_NUMBER\u003c/var\u003e with the values\n that you noted in the previous step.\n 7. At the prompt, enter the `info memory` command.\n\n In the output, values for the `used_memory` and `maxmemory` parameters appear. `used_memory` is how much memory the node uses and `maxmemory` is how much\n memory is available for the node.\n 8. Divide the value of the `used_memory` parameter by the value of the\n `maxmemory` parameter, and verify that the quotient is greater than 98%.\n\n 9. To free up space for the node, [delete some of the node's keys](https://redis.io/docs/latest/commands/del/).\n\n 10. Enter the `info memory` command again. In the output, the value of the\n `used_memory` parameter is smaller.\n\n 11. Divide the value of the `used_memory` parameter by the value of the\n `maxmemory` parameter, and verify that the quotient is now less than 98%.\n If it isn't, then delete more keys.\n\n 12. For any other nodes that don't have enough free space, repeat steps 4 - 11\n of this procedure.\n\n | **Caution** : We recommend that you use the `redis-shared-core-nano` node type for development or testing purposes only. If you run Memorystore for Redis Cluster in a production environment, then we recommend using the `redis-standard-small`, `redis-highmem-medium`, or `redis-highmem-xlarge` node types. For more information about these node types, see [Choose a node type](/memorystore/docs/cluster/cluster-node-specification#choose_a_node_type).\n- You scaled to a smaller shard count that doesn't have the capacity to hold\n all of the keys that Memorystore for Redis Cluster stores in the\n original instance. To resolve this, scale to a larger shard count that can\n hold all of the stored keys. For more information about increasing the number of\n shards for your instance, see [Scale the shard count](/memorystore/docs/cluster/scale-instance-capacity#scale_the_shard_count).\n\n- You scaled to a smaller node type that doesn't have the capacity to hold all\n of the data that Memorystore for Redis Cluster stores in the original\n node type. If this occurs, then Memorystore for Redis Cluster\n provides you with a recommended node type to scale down vertically.\n\n- You updated the node type for your instance and either you overwrite the default\n [settings](/memorystore/docs/cluster/supported-instance-configurations) for the\n original node type or these settings are overwritten already. However, the new,\n scaled node type either doesn't support the values for the default settings or\n the settings aren't valid for the node type. If this occurs, then Memorystore for Redis Cluster returns an error. To resolve this, modify\n the settings manually so that they're valid for the new node type.\n\n- You scaled your instance during a period of high write pressure (for example,\n during load testing). To resolve this, scale during periods of low instance\n traffic.\n\n- You have a slot which contains a large key, and you want to migrate this key\n to another node. However, this node doesn't have sufficient memory to support\n the key. As a result, you can't update your cluster. To resolve this, reduce the\n size of the key and retry the update operation.\n\n- The slot number that a node of a cluster owns isn't known, but only the slot\n range is known. Memorystore for Redis Cluster returns an error message. If this occurs,\n then reduce the size of the key and retry the update operation.\n\nBest practices\n--------------\n\nTo help you scale the capacity for your instance, and to increase the speed and\nreliability of scaling your instance, scale it during low periods of traffic,\nwhenever you can. To learn how to monitor instance traffic, see [Monitor clusters](/memorystore/docs/cluster/monitor-instances)."]]