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
Alle Shards in Ihrem Cluster verwenden 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 eine variable Leistung und hat kein SLA, was ihn für Produktionsarbeitslasten ungeeignet macht.
Mit dem Knotentyp redis-standard-small
können Sie kleine Cluster bereitstellen und Ihren Cluster in kleineren Schritten erweitern. Das ist möglicherweise kostengünstiger als bei anderen Knotentypen. redis-standard-small
bietet auch den Vorteil, dass Ihr Keyspace auf mehr Knoten mit einer höheren Gesamtzahl an vCPUs verteilt wird. Das bietet ein besseres Preis-Leistungs-Verhältnis als redis-highmem-medium
, sofern die Gesamtkapazität des Schlüsselbereichs der kleineren Knoten für Ihre Datenanforderungen ausreicht.
Wir empfehlen, den Knotentyp redis-highmem-xlarge
nur auszuwählen, wenn Sie mehr Clusterkapazität benötigen, als redis-highmem-medium
bietet. Der Knotentyp redis-highmem-xlarge
ist zwar viermal so groß wie der Typ redis-highmem-medium
, die Leistung ist jedoch nicht viermal so hoch, da die Redis-Leistung nicht linear skaliert wird, wenn vCPUs zu immer größeren Knoten hinzugefügt werden (Hochskalierung). Stattdessen sollten Sie die Leistung verbessern, indem Sie einem Cluster weitere Knoten hinzufügen.
Spezifikation des Knotentyps
Die Knotenkapazität und ‑merkmale hängen davon ab, welchen der vier verfügbaren Knotentypen Sie auswählen:
Keyspace-Kapazität und reservierter Overhead
Knotentyp | Standardschreibkapazität für Keyspace | 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-highmem-xlarge | 46,4 GB | 58 GB |
Memorystore reserviert automatisch einen Teil der Instanzkapazität, um Fehler aufgrund von unzureichendem Arbeitsspeicher zu vermeiden. So wird ein reibungsloses Lesen und Schreiben von Schlüsseln gewährleistet. Die Arbeitsspeicherlimits und Speicherdetails sind wie folgt:
Speicher anpassen:Wir empfehlen zwar, die Standardeinstellungen zu verwenden, Sie haben aber die Möglichkeit, die Menge des reservierten Speichers mit der
maxmemory
-Konfiguration anzupassen. Informationen zumaxmemory
finden Sie unter Unterstützte Instanzkonfigurationen.Wie viel Speicherplatz erhalte ich? Sehen Sie sich die Spalte Default writable keyspace capacity (Standardkapazität für beschreibbaren Keyspace) in der vorherigen Tabelle an. Hier sehen Sie, wie viel Speicherplatz für Ihre Schlüssel standardmäßig verfügbar ist.
Speicher maximieren: Wenn Sie den maximal möglichen Speicherplatz nutzen möchten, sehen Sie in der Spalte Gesamtknotenkapazität das Speicherlimit, wenn Sie die
maxmemory
-Konfiguration auf 100 % festlegen. Wir empfehlen jedoch nicht, einenmaxmemory
-Wert zu wählen, der höher als die Standardeinstellung ist.Der Knotentyp
redis-shared-core-nano
hat ein festes Limit von 1, 12 GB und kann nicht mit dermaxmemory
-Konfiguration geändert werden.
Knotenmerkmale
Knotentyp | vCPU Anzahl | Angebotenes SLA | Maximale Anzahl von Clients | Maximaler Arbeitsspeicher für Clients (Konfiguration für „maxmemory-clients“) |
---|---|---|---|---|
redis-shared-core-nano | 0,5 | Nein | 5.000 | 12 % |
redis-standard-small | 2 | Ja | 16.000 (Standard). Der Höchstwert ist 32.000. | 7 % |
redis-highmem-medium | 2 | Ja | 32.000 (Standard). Der Höchstwert beträgt 64.000. | 7 % |
redis-highmem-xlarge | 8 | Ja | 64.000 | 4 % |
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 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 aus (z. B. redis-highmem-medium
).
Instanz skalieren
Beim Erstellen einer Memorystore for Redis-Clusterinstanz 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 Ihre Instanz ändern, müssen Sie die Instanz möglicherweise auf folgende Weise skalieren:
- Ändern Sie die Anzahl der Shards für Ihre Instanz. Das ist die horizontale Skalierung.
Sie können eine Instanz horizontal skalieren, indem Sie eine der folgenden Aktionen ausführen:
- Fügen Sie der Instanz Shards hinzu. Dadurch wird die Instanz horizontal skaliert.
- Entfernen Sie Shards aus der Instanz. Die Instanz wird hochskaliert.
- Ändern Sie den Knotentyp für Ihre Instanz. Das ist die vertikale Skalierung. Wenn Sie eine Instanz vertikal skalieren möchten, ändern Sie den Knotentyp der Instanz in einen der folgenden Knotentypen:
- Wechseln Sie zu einem größeren Knotentyp. Dabei wird die Instanz vertikal skaliert.
- Zu einem kleineren Knotentyp wechseln Die Instanz wird herunterskaliert.
Clusterspezifikation
In diesem Abschnitt sehen Sie die Mindest- und Höchstkapazitäten des Clusters in Abhängigkeit von der Clusterform, dem Knotentyp und der Anzahl der Replikate.
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 beträgt die minimale beschreibbare Kapazität daher 1,4 GB, 6,5 GB, 13 GB oder 58 GB. Die Mindestkapazität für Schreibvorgänge wird durch die Anzahl der ausgewählten Replikate nicht beeinflusst.
Maximale beschreibbare Kapazität
Knotentyp und -größe | Maximale Kapazität bei einer Clusterform mit 250 primären Knoten und 0 Replikaten pro Knoten | Maximale Kapazität bei einer Clusterform von 125 primären Knoten und 1 Replikat pro Knoten | Maximale Kapazität bei einer Clusterform mit 83 primären Knoten und 2 Replikaten pro Knoten |
---|---|---|---|
redis-shared-core-nano – 1,4 GB | 350 GB | 175 GB | 116,2 GB |
redis-standard-small – 6,5 GB | 1.625 GB | 812,5 GB | 539,5 GB |
redis-highmem-medium – 13 GB | 3.250 GB | 1.625 GB | 1.079 GB |
redis-highmem-xlarge – 58 GB | 14.500 GB | 7.250 GB | 4.814 GB |
Leistung
Bei Verwendung des OSS-Benchmarking-Tools „memtier“ in der Region us-central1
wurden 120.000 bis 130.000 Vorgänge pro Sekunde pro Knoten mit 2 vCPUs (redis-standard-small
und redis-highmem-medium
) mit Mikrosekundenlatenz und einer Datengröße von 1 KiB erzielt.
Wir empfehlen, eigene Benchmarks mit echten oder synthetischen Arbeitslasten durchzuführen, die Ihrem Produktions-Traffic ähneln. Außerdem empfehlen wir, Ihre Cluster mit einem Puffer (oder „Headroom“) für Arbeitslastspitzen oder unerwartete Zugriffe 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.
Endpunkt der Erkennung
Jede Instanz hat einen Discovery-Endpunkt, mit dem Ihr Client eine Verbindung herstellt. Sie besteht aus einer IP-Adresse und einer 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 booten und 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 können. Ihr Client kümmert sich dann automatisch um die Updates und Weiterleitungen, ohne dass weitere Anwendungsänderungen erforderlich sind. Informationen zum Client-Erkennungsverhalten und zu Best Practices finden Sie unter Client-Erkennung.
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 Ausfällen von Backend-Knoten oder Knotenaktualisierungen robust.
Ihr Discovery-Endpunkt hat das folgende 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 dem Skalieren oder Ä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. Im Idealfall verwenden Sie einen Redis-Clusterclient, der diese Änderungen automatisch durch Topologieaktualisierungen und Weiterleitungen verarbeiten kann. Beispiele für Redis Cluster-Clients 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
Jede Instanz hat auch einen Private Service Connect-Datenendpunkt, der von Memorystore for Redis Cluster für die Clientverbindung verwendet wird. Sie sollten keine direkte Verbindung zu diesem Endpunkt herstellen. Memorystore for Redis Cluster verwendet ihn jedoch, um Ihren Client mit Clusterknoten zu verbinden.