Auf dieser Seite werden die Cluster- und Knotenspezifikationen für Memorystore for Redis Cluster-Instanzen beschrieben. Eine Anleitung zum Erstellen einer Instanz finden Sie unter Instanzen erstellen.
Knotentyp auswählen
Die Shards in Ihrem Cluster verwenden alle denselben Knotentyp Ihrer Wahl. Der beste Knotentyp für Ihren Cluster hängt von Ihren Anforderungen an Preis, Leistung und Keyspace-Kapazität ab.
Der Knotentyp redis-shared-core-nano ist für kleine Arbeitslasten vorgesehen. Dieser Knotentyp
bietet variable Leistung
und hat kein SLA. Daher ist er für Produktionsarbeitslasten nicht geeignet.
Mit dem Knotentyp redis-standard-small können Sie kleine Cluster bereitstellen und Ihren Cluster in kleineren Schritten zu potenziell geringeren Kosten als bei anderen Knotentypen vergrößern. redis-standard-small bietet auch den Vorteil, dass Ihr Keyspace auf mehr Knoten mit einer höheren Gesamtzahl von vCPUs verteilt wird. Dies bietet ein besseres Preis-Leistungs-Verhältnis als redis-highmem-medium, solange die Gesamtkapazität des Keyspace der kleineren Knoten für Ihre Datenanforderungen ausreicht.
Wenn Sie Arbeitslasten haben, die eine höhere Rechenleistung im Verhältnis zum Arbeitsspeicher erfordern, wählen Sie den Knotentyp redis-highcpu-medium aus. Wenn Sie mehr Kapazität benötigen, als redis-highmem-medium bietet, empfehlen wir die Knotentypen redis-standard-large, redis-highmem-xlarge oder redis-highmem-2xlarge. Wenn Sie immer größere Knoten mit vCPUs hinzufügen (vertikale Skalierung), skaliert die Redis-Leistung möglicherweise nicht linear. Stattdessen empfehlen wir, die horizontale Skalierung zu verwenden, indem Sie einem Cluster weitere Knoten hinzufügen, um ein besseres Preis
Leistungs-Verhältnis zu erzielen.
Knotentypspezifikation
Die Knotenkapazität und -merkmale hängen vom ausgewählten Knotentyp ab:
Keyspace-Kapazität und reservierter Overhead
| Knotentyp | Standardmäßige beschreibbare Keyspace-Kapazität | Gesamtknotenkapazität |
|---|---|---|
| redis-shared-core-nano | 1,12 GB | 1,4 GB |
| redis-standard-small | 5,2 GB | 6,5 GB |
| redis-highmem-medium | 10,4 GB | 13 GB |
| redis-highcpu-medium | 10,4 GB | 13 GB |
| redis-standard-large | 20,8 GB | 26 GB |
| redis-highmem-xlarge | 46,4 GB | 58 GB |
| redis-highmem-2xlarge | 88 GB | 110 GB |
Memorystore reserviert automatisch einen Teil der Instanzkapazität, um Fehler wegen unzureichendem Arbeitsspeicher (Out Of Memory, OOM) zu vermeiden. So können Sie Schlüssel reibungslos lesen und schreiben. Die Speicherlimits und ‑details sind wie folgt:
Speicher anpassen:Wir empfehlen zwar, die Standardeinstellungen zu verwenden, Sie können aber die Menge des reservierten Speichers mit der Konfiguration
maxmemoryanpassen. Informationen zumaxmemory, finden Sie unter Unterstützte Instanzkonfigurationen.Wie viel Speicherplatz erhalten Sie? Sehen Sie in der vorherigen Tabelle in der Spalte Standardmäßige beschreibbare Keyspace-Kapazität nach. Dort wird angezeigt, wie viel Speicherplatz standardmäßig für Ihre Schlüssel verfügbar ist.
Speicher maximieren Wenn Sie den maximal möglichen Speicherplatz wünschen, zeigt die Spalte Gesamtknotenkapazität das Speicherlimit an, wenn Sie die Konfiguration
maxmemoryauf 100 % festlegen. Wir empfehlen jedoch, keinenmaxmemory-Wert zu wählen, der höher als die Standardeinstellung ist.Der Knotentyp
redis-shared-core-nanohat ein festes Limit von 1, 12 GB und kann nicht mit der Konfigurationmaxmemorygeändert werden.
Knotenmerkmale
Je mehr virtuelle CPUs (vCPUs) Sie für Ihren Cluster auswählen, desto besser ist die Leistung. Wenn in Ihrem Cluster ressourcenintensive Arbeitslasten ausgeführt werden, wählen Sie einen Knotentyp mit einer höheren vCPU-Anzahl aus (z. B. redis-highmem-xlarge). Wenn in Ihrem Cluster weniger anspruchsvolle Aufgaben ausgeführt werden, wählen Sie einen Knotentyp mit einer niedrigeren vCPU-Anzahl aus (z. B. redis-highmem-medium).
Instanz skalieren
Beim Erstellen einer Memorystore for Redis Cluster-Instanz wählen Sie einen Knotentyp für die Instanz aus und geben die Anzahl der Shards für die Instanz an. Nachdem Sie die Instanz erstellt haben und sich die Kapazitätsanforderungen für die Instanz ändern, müssen Sie die Instanz möglicherweise auf folgende Weise skalieren:
- Ändern Sie die Anzahl der Shards für die Instanz. Dies ist die horizontale Skalierung.
Sie skalieren eine Instanz horizontal, indem Sie eine der folgenden Aktionen ausführen:
- Fügen Sie der Instanz Shards hinzu. Dies ist die horizontale Aufskalierung der Instanz.
- Entfernen Sie Shards aus der Instanz. Dies ist die horizontale Herunterskalierung der Instanz.
- Ändern Sie den Knotentyp für die Instanz. Dies ist die vertikale Skalierung. Um eine Instanz vertikal zu skalieren, ändern Sie den Knotentyp der Instanz in einen der folgenden Knotentypen:
- Wechseln Sie zu einem größeren Knotentyp. Dies ist die vertikale Aufskalierung der Instanz.
- Wechseln Sie zu einem kleineren Knotentyp. Dies ist die vertikale Herunterskalierung der Instanz.
Clusterspezifikation
In diesem Abschnitt werden die minimalen und maximalen Clusterkapazitäten für die Clusterform, den Knotentyp und die Anzahl der Replikate angegeben.
Minimale beschreibbare Kapazität
Die beschreibbare Kapazität ist die Menge an Speicherplatz, die zum Schreiben von Schlüsseln zur Verfügung steht. Sie entspricht der Größe eines Instanzknotens. Je nach Knotentyp liegt die minimale beschreibbare Kapazität zwischen 1,4 GB und 110 GB. Die minimale beschreibbare Kapazität wird nicht durch die Anzahl der von Ihnen ausgewählten Replikate beeinflusst.
Maximale beschreibbare Kapazität
| Knotentyp und ‑größe | Maximale Kapazität bei einer Clusterform von 250 primären Knoten und 0 Replikaten pro Knoten | Maximale Kapazität bei einer Clusterform von 125 primären Knoten und 1 Replikaten pro Knoten | Maximale Kapazität bei einer Clusterform von 83 primären Knoten und 2 Replikaten pro Knoten | Maximale Kapazität bei einer Clusterform von 62 primären Knoten und 3 Replikaten pro Knoten | Maximale Kapazität bei einer Clusterform von 50 primären Knoten und 4 Replikaten pro Knoten | Maximale Kapazität bei einer Clusterform von 41 primären Knoten und 5 Replikaten pro Knoten |
|---|---|---|---|---|---|---|
| redis-shared-core-nano – 1,4 GB | 350 GB | 175 GB | 116,2 GB | 86,8 GB | 70 GB | 57,4 GB |
| redis-standard-small – 6,5 GB | 1.625 GB | 812,5 GB | 539,5 GB | 403 GB | 325 GB | 266,5 GB |
| redis-highmem-medium – 13 GB | 3.250 GB | 1.625 GB | 1.079 GB | 806 GB | 650 GB | 533 GB |
| redis-highcpu-medium – 13 GB | 3.250 GB | 1.625 GB | 1.079 GB | 806 GB | 650 GB | 533 GB |
| redis-standard-large – 26 GB | 6.500 GB | 3.250 GB | 2.158 GB | 1.612 GB | 1.300 GB | 1.066 GB |
| redis-highmem-xlarge – 58 GB | 14.500 GB | 7.250 GB | 4.814 GB | 3.596 GB | 2.900 GB | 2.378 GB |
| redis-highmem-2xlarge – 110 GB | 27.500 GB | 13.750 GB | 9.130 GB | 6.820 GB | 5.500 GB | 4.510 GB |
Leistung
Bei Verwendung des OSS memtier-Benchmarking-Tools in der Region us-central1 wurden 120.000 bis 130.000
Vorgänge pro Sekunde pro 2-vCPU-Knoten (redis-standard-small und
redis-highmem-medium) mit einer Latenz im Mikrosekundenbereich und einer Datengröße von 1 KiB erzielt.
Wir empfehlen, eigene Benchmarks mit echten Arbeitslasten oder synthetischen Arbeitslasten durchzuführen, die Ihrem Produktionsdatenverkehr ähneln. Außerdem empfehlen wir, Ihre Cluster mit einem Puffer (oder „Spielraum“) für Arbeitslastspitzen oder unerwarteten Traffic zu dimensionieren. Weitere Informationen finden Sie unter Best Practices für Memorystore for Redis Cluster.
Clusterendpunkte
In diesem Abschnitt werden die beiden Endpunkte beschrieben, die jede Instanz hat.
Discovery-Endpunkt
Jede Instanz hat einen Discovery-Endpunkt, mit dem sich Ihr Client verbindet. Er besteht aus einer Kombination aus IP-Adresse und Portnummer. Eine Anleitung zum Ermitteln des Discovery-Endpunkts Ihres Clusters finden Sie unter Discovery-Endpunkt des Clusters ansehen.
Ihr Client verwendet ihn auch für die Knotenerkennung. Ihr Client verwendet den Discovery-Endpunkt, um die Clustertopologie Ihrer Instanz abzurufen, um OSS Redis-Clusterclients zu starten und sie im stabilen Zustand auf dem neuesten Stand zu halten. Die resultierende Clustertopologie stellt Redis-Knotenendpunkte (IP- und Portkombinationen) bereit, die vom Redis-Clusterclient im Arbeitsspeicher zwischengespeichert werden. Ihr Client kümmert sich dann automatisch um die Updates und Weiterleitungen, ohne dass weitere Änderungen an der Anwendung erforderlich sind. Informationen zum Verhalten bei der Clienterkennung und zu Best Practices finden Sie unter Clienterkennung.
Der Discovery-Endpunkt ist hochverfügbar, da er von mehreren Redis-Knoten in mehreren Zonen unterstützt wird, um die Clustertopologie bereitzustellen. Die Bereitstellung der Topologie über den Endpunkt ist auch bei Fehlern von Backend-Knoten oder Knotenupdates robust.
Ihr Discovery-Endpunkt hat folgendes Verhalten:
Der Discovery-Endpunkt Ihres Clusters bleibt während des gesamten Lebenszyklus der Clusterinstanz unverändert, auch während der Wartung oder bei anderen Aktionen wie der horizontalen Auf- oder Herunterskalierung oder dem Ändern der Anzahl der Replikate.
Redis-Knotenendpunkte können sich ändern und wiederverwendet werden, wenn im Laufe der Zeit Knoten hinzugefügt und entfernt werden. Idealerweise sollten Sie einen Redis-Clusterclient verwenden, der diese Änderungen automatisch durch Topologieaktualisierungen und Weiterleitungen verarbeiten kann. Beispiele für Redis-Clusterclients finden Sie unter Codebeispiele für Clientbibliotheken. Ihre Anwendung sollte keine Abhängigkeiten oder Annahmen haben, dass Knotenendpunkte für einen bestimmten Cluster unverändert bleiben.
Datenendpunkt
Neben dem Discovery-Endpunkt hat jeder Cluster einen Datenendpunkt. Dieser Endpunkt ist für Memorystore for Redis Cluster reserviert, um Ihren Client mit Knoten im Cluster zu verbinden. Stellen Sie daher keine direkte Verbindung zu diesem Endpunkt her.