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 type de nœud le mieux adapté à 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 pas soumis à un 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 distribuer votre espace de clés sur un plus grand nombre de nœuds avec un nombre total de vCPU 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.
Si vous avez des charges de travail qui nécessitent une puissance de traitement plus élevée par rapport à la mémoire, choisissez le type de nœud redis-highcpu-medium. Si vous avez besoin de plus de capacité que celle fournie par redis-highmem-medium, nous vous recommandons de choisir les types de nœuds redis-standard-large, redis-highmem-xlarge ou redis-highmem-2xlarge. Lorsque vous ajoutez des processeurs virtuels à des nœuds de plus en plus grands (scaling up), les performances de Redis peuvent ne pas évoluer de manière linéaire. Pour améliorer le rapport prix/performances, nous vous recommandons plutôt d'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 :
Capacité de l'espace de clés et marge réservée
| Type de nœud | Capacité d'espace de clés inscriptible 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-highcpu-medium | 10,4 Go | 13 Go |
| redis-standard-large | 20,8 Go | 26 Go |
| redis-highmem-xlarge | 46,4 Go | 58 Go |
| redis-highmem-2xlarge | 88 Go | 110 Go |
Memorystore réserve automatiquement une partie de la capacité de votre instance pour éviter les erreurs de mémoire insuffisante. Cela permet de garantir une expérience fluide de lecture et d'é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 surmaxmemory, consultez Configurations d'instance compatibles.De combien d'espace de stockage disposez-vous ? Reportez-vous à la colonne Capacité de l'espace de clés accessible en écriture par défaut du tableau précédent. Indique l'espace de stockage disponible pour vos clés par défaut.
Maximiser le stockage : si vous souhaitez obtenir le maximum de stockage possible, la colonne Capacité totale des nœuds indique la limite de stockage lorsque vous définissez la configuration
maxmemorysur 100%. Toutefois, ne recommandez pas de choisir une valeurmaxmemorysupérieure au paramètre par défaut.Le type de nœud
redis-shared-core-nanoest limité à 1, 12 Go et ne peut pas être modifié avec la configurationmaxmemory.
Caractéristiques des nœuds
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 vCPU 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 vCPU 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 mettre à l'échelle de l'une des manières suivantes :
- 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 out de l'instance.
- Supprimez les partitions de l'instance. Cela signifie que vous augmentez la taille de l'instance.
- Modifiez le type de nœud de votre instance. C'est ce que l'on appelle le scaling vertical. Pour faire évoluer une instance verticalement, 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. Cela signifie que vous réduisez la taille de l'instance.
Spécification du cluster
Cette section indique les capacités de cluster minimales et maximales en fonction de la forme du cluster, du type de nœud et du nombre de réplicas.
Capacité d'écriture 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 comprise entre 1,4 Go et 110 Go. Le nombre de réplicas que vous choisissez n'a aucune incidence sur la capacité d'écriture minimale.
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 1 réplique par nœud | Capacité maximale pour une forme de cluster de 83 nœuds principaux et 2 répliques par nœud | Capacité maximale pour une forme de cluster de 62 nœuds principaux et 3 répliques par nœud | Capacité maximale pour une forme de cluster de 50 nœuds principaux et 4 répliques par nœud | Capacité maximale pour une forme de cluster de 41 nœuds principaux et 5 répliques par nœud |
|---|---|---|---|---|---|---|
| redis-shared-core-nano : 1,4 Go | 350 Go | 175 Go | 116,2 Go | 86,8 Go | 70 Go | 57,4 Go |
| redis-standard-small : 6,5 Go | 1 625 Go | 812,5 Go | 539,5 Go | 403 Go | 325 Go | 266,5 Go |
| redis-highmem-medium : 13 Go | 3 250 Go | 1 625 Go | 1 079 Go | 806 Go | 650 Go | 533 Go |
| redis-highcpu-medium : 13 Go | 3 250 Go | 1 625 Go | 1 079 Go | 806 Go | 650 Go | 533 Go |
| redis-standard-large : 26 Go | 6 500 Go | 3 250 Go | 2 158 Go | 1 612 Go | 1 300 Go | 1 066 Go |
| redis-highmem-xlarge : 58 Go | 14 500 Go | 7 250 Go | 4 814 Go | 3 596 Go | 2 900 Go | 2 378 Go |
| redis-highmem-2xlarge : 110 Go | 27 500 Go | 13 750 Go | 9 130 Go | 6 820 Go | 5 500 Go | 4 510 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 vCPU (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 de 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 du cluster Redis. Votre client se charge 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écouverte présente le comportement suivant :
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 toute autre action que vous effectuez, comme la mise à l'échelle ou la modification du nombre de répliques.
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 Redis Cluster 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 d'hypothèses selon lesquelles les points de terminaison de nœud resteront inchangés pour un cluster donné.
Point de terminaison de données
En plus du point de terminaison de découverte, chaque cluster possède un point de terminaison de données. Ce point de terminaison est réservé à Memorystore for Redis Cluster pour connecter votre client aux nœuds du cluster. Par conséquent, ne vous connectez pas directement à ce point de terminaison.