Spécification des clusters et des nœuds

Cette page décrit les spécifications des clusters et des nœuds pour les instances Memorystore pour Redis Cluster. Pour savoir comment créer une instance, consultez Créer des instances.

Choisir un type de nœud

Les partitions de votre cluster utilisent toutes le même type de nœud de votre choix. Le meilleur type de nœud pour votre cluster dépend de vos exigences en termes de prix, de performances et de capacité de l'espace de clés.

Le type de nœud redis-shared-core-nano est destiné aux petites charges de travail. Ce type de nœud offre des performances variables et n'est associé à aucun contrat de niveau de service. Il ne convient donc pas aux charges de travail de production.

Le type de nœud redis-standard-small vous permet de provisionner de petits clusters et de les développer par petits incréments à des coûts potentiellement inférieurs à ceux des autres types de nœuds. redis-standard-small offre également l'avantage de répartir votre espace de clés sur un plus grand nombre de nœuds avec un nombre total de processeurs virtuels plus élevé. Cela offre un meilleur rapport prix/performances que redis-highmem-medium, à condition que la capacité totale de l'espace de clés des nœuds plus petits soit suffisante pour vos besoins en données.

Nous vous recommandons de choisir le type de nœud redis-highmem-xlarge uniquement si vous avez besoin d'une capacité de cluster supérieure à celle fournie par redis-highmem-medium. Bien que le type de nœud redis-highmem-xlarge soit quatre fois plus grand que le type redis-highmem-medium, les performances ne sont pas quatre fois supérieures, car les performances de Redis ne sont pas linéaires lorsque des processeurs virtuels sont ajoutés à des nœuds de plus en plus grands (scaling vertical). Au lieu de cela, pour améliorer les performances tarifaires, vous devez effectuer effectuer un scaling horizontal en ajoutant des nœuds à un cluster.

Spécification du type de nœud

La capacité et les caractéristiques des nœuds dépendent du type de nœud que vous choisissez parmi les quatre disponibles :

Capacité de l'espace de clés et surcharge réservée

Type de nœud Capacité d'espace de clés accessible en écriture par défaut Capacité totale des nœuds
redis-shared-core-nano 1,12 Go 1,4 Go
redis-standard-small 5,2 Go 6,5 Go
redis-highmem-medium 10,4 Go 13 Go
redis-highmem-xlarge 46,4 Go 58 Go

Memorystore réserve automatiquement une partie de la capacité de votre instance pour éviter les erreurs de mémoire saturée (OOM, Out Of Memory). Cela garantit une expérience fluide pour la lecture et l'écriture des clés. Voici les limites de mémoire et les détails de stockage :

  • Personnaliser votre stockage : bien que nous vous recommandions d'utiliser les paramètres par défaut, vous pouvez ajuster la quantité de stockage réservé à l'aide de la configuration maxmemory. Pour en savoir plus sur maxmemory, consultez Configurations d'instance compatibles.

  • De quel espace de stockage disposez-vous ? Reportez-vous à la colonne Capacité de l'espace de clés inscriptible par défaut du tableau précédent. Cette section indique l'espace de stockage disponible pour vos clés par défaut.

  • Maximiser le stockage : si vous souhaitez obtenir la capacité de stockage maximale possible, la colonne Capacité totale des nœuds indique la limite de stockage lorsque vous définissez la configuration maxmemory sur 100 %. Toutefois, ne recommandez pas de choisir une valeur maxmemory supérieure au paramètre par défaut.

  • Le type de nœud redis-shared-core-nano est limité à 1, 12 Go et ne peut pas être modifié avec la configuration maxmemory.

Caractéristiques des nœuds

Type de nœud Nombre de vCPU SLA proposé Nombre maximal de clients Mémoire maximale pour les clients (configuration maxmemory-clients)
redis-shared-core-nano 0,5 Non 5 000 12 %
redis-standard-small 2 Oui 16 000 (par défaut) La valeur maximale est de 32 000 7 %
redis-highmem-medium 2 Oui 32 000 (par défaut) La valeur maximale est de 64 000 7 %
redis-highmem-xlarge 8 Oui 64 000 4 %

Plus vous sélectionnez de processeurs virtuels (vCPU) pour votre cluster, meilleures seront les performances. Si votre cluster exécute des charges de travail gourmandes en ressources, sélectionnez un type de nœud avec un nombre de processeurs virtuels plus élevé (par exemple, redis-highmem-xlarge). Si votre cluster effectue des tâches moins exigeantes, sélectionnez un type de nœud avec un nombre de processeurs virtuels plus faible (par exemple, redis-highmem-medium).

Procéder au scaling d'une instance

Lorsque vous créez une instance Memorystore pour Redis Cluster, vous choisissez un type de nœud pour l'instance et spécifiez le nombre de partitions pour l'instance. Une fois l'instance créée, et à mesure que les besoins en capacité de votre instance évoluent, vous devrez peut-être la faire évoluer comme suit :

  • Modifiez le nombre de segments pour votre instance. C'est ce qu'on appelle le scaling horizontal. Pour mettre à l'échelle une instance horizontalement, effectuez l'une des actions suivantes :
    • Ajoutez des partitions à l'instance. Il s'agit d'un scaling horizontal de l'instance.
    • Supprimez les partitions de l'instance. Il s'agit d'un scaling in de l'instance.
  • Modifiez le type de nœud de votre instance. C'est ce qu'on appelle le scaling vertical. Pour effectuer un scaling vertical d'une instance, remplacez son type de nœud par l'un des types de nœuds suivants :
    • Passez à un type de nœud plus grand. Il s'agit d'un scaling à la hausse de l'instance.
    • Passez à un type de nœud plus petit. Il s'agit d'un scaling à la baisse de l'instance.

Spécification du cluster

Cette section indique les capacités minimales et maximales du cluster en fonction de sa forme, du type de nœud et du nombre de répliques.

Capacité inscriptible minimale

La capacité d'écriture correspond à la quantité de stockage disponible pour écrire des clés. Elle est égale à la taille d'un nœud d'instance. Par conséquent, selon le type de nœud, la capacité d'écriture minimale est de 1,4 Go, 6,5 Go, 13 Go ou 58 Go. La capacité d'écriture minimale n'est pas affectée par le nombre de réplicas que vous choisissez.

Capacité d'écriture maximale

Type et taille du nœud Capacité maximale pour une forme de cluster de 250 nœuds principaux et 0 réplique par nœud Capacité maximale pour une forme de cluster de 125 nœuds principaux et une réplique par nœud Capacité maximale pour une forme de cluster donnée de 83 nœuds principaux et 2 répliques par nœud
redis-shared-core-nano : 1,4 Go 350 Go 175 Go 116,2 Go
redis-standard-small : 6,5 Go 1 625 Go 812,5 Go 539,5 Go
redis-highmem-medium : 13 Go 3 250 Go 1 625 Go 1 079 Go
redis-highmem-xlarge : 58 Go 14 500 Go 7 250 Go 4 814 Go

Performances

L'utilisation de l'outil de benchmarking OSS memtier dans la région us-central1 a permis d'obtenir entre 120 000 et 130 000 opérations par seconde par nœud à deux processeurs virtuels (redis-standard-small et redis-highmem-medium) avec une latence en microsecondes et une taille de données de 1 Kio.

Nous vous recommandons d'effectuer votre propre benchmarking avec des charges de travail réelles ou synthétiques qui ressemblent à votre trafic de production. De plus, nous vous recommandons de dimensionner vos clusters avec une marge (ou "marge de sécurité") pour les pics de charge de travail ou le trafic inattendu. Pour obtenir d'autres conseils, consultez Bonnes pratiques pour Memorystore pour Redis Cluster.

Points de terminaison du cluster

Cette section explique les deux points de terminaison dont dispose chaque instance.

Point de terminaison de découverte

Chaque instance dispose d'un point de terminaison de découverte auquel votre client se connecte. Il s'agit d'une combinaison d'une adresse IP et d'un numéro de port. Pour savoir comment trouver le point de terminaison de découverte de votre cluster, consultez Afficher le point de terminaison de découverte de votre cluster.

Votre client l'utilise également pour la découverte des nœuds. Votre client utilise le point de terminaison de découverte pour récupérer la topologie du cluster de votre instance afin d'amorcer les clients de cluster Redis OSS et de les maintenir à jour en état stable. La topologie de cluster résultante fournit des points de terminaison de nœud Redis (combinaisons d'adresse IP et de port) à mettre en cache en mémoire par le client de cluster Redis. Votre client s'occupe ensuite des mises à jour et des redirections automatiquement, sans qu'aucune autre modification de l'application ne soit nécessaire. Pour en savoir plus sur le comportement de découverte des clients et les bonnes pratiques, consultez Découverte des clients.

Le point de terminaison de découverte est disponibilité élevée, car il est soutenu par plusieurs nœuds Redis dans plusieurs zones pour desservir la topologie du cluster. La topologie de diffusion via le point de terminaison est robuste, même en cas de défaillance ou de mise à jour des nœuds de backend.

Votre point de terminaison de détection présente les caractéristiques suivantes :

  1. Le point de terminaison de découverte de votre cluster reste inchangé tout au long du cycle de vie de l'instance de cluster, même pendant la maintenance ou lors de toute autre action que vous effectuez, comme la mise à l'échelle ou la modification du nombre de répliques.

  2. Les points de terminaison des nœuds Redis peuvent changer et être recyclés à mesure que des nœuds sont ajoutés et supprimés au fil du temps. Dans l'idéal, vous devez utiliser un client de cluster Redis capable de gérer ces modifications automatiquement grâce aux actualisations de la topologie et aux redirections. Vous trouverez des exemples de clients de cluster Redis sur la page Exemples de code de la bibliothèque cliente. Votre application ne doit pas avoir de dépendances ni de suppositions selon lesquelles les points de terminaison des nœuds resteront inchangés pour un cluster donné.

Point de terminaison de données

Chaque instance dispose également d'un point de terminaison de données Private Service Connect que Memorystore pour Redis Cluster utilise pour la connexion client. Vous ne devez pas vous y connecter directement, mais Memorystore pour Redis Cluster utilise ce point de terminaison pour connecter votre client aux nœuds du cluster.