Instanz- und Knotenspezifikation

Auf dieser Seite werden die Instanz- und Knotenspezifikationen für Memorystore for Redis-Instanzen beschrieben. Eine Anleitung zum Erstellen einer Instanz finden Sie unter Instanzen erstellen.

Knotentyp auswählen

Die Knoten in Ihrer Instanz verwenden alle den von Ihnen ausgewählten Knotentyp. Der für Ihre Instanz am besten geeignete Knotentyp hängt von Ihren Anforderungen an Preis, Leistung und Schlüsselbereichskapazität ab.

Der Knotentyp shared-core-nano eignet sich für kleine Arbeitslasten. Dieser Knotentyp bietet eine variable Leistung und hat kein SLA. Er ist daher nicht für Produktionsarbeitslasten geeignet.

Mit dem Knotentyp standard-small können Sie kleine Instanzen bereitstellen und Ihre Instanz in kleineren Schritten und zu möglicherweise niedrigeren Kosten als bei anderen Knotentypen vergrößern. standard-small bietet außerdem den Vorteil, dass der Schlüsselbereich auf mehr Knoten mit einer höheren Gesamtzahl von vCPUs verteilt werden kann. Das bietet eine bessere Preis-Leistungs-Relation als highmem-medium, sofern die Gesamtkapazität des Schlüsselbereichs der kleineren Knoten für Ihre Datenanforderungen ausreicht.

Wir empfehlen, den Knotentyp highmem-xlarge nur auszuwählen, wenn Sie mehr Instanzkapazität benötigen als highmem-medium bietet. Obwohl der highmem-xlarge-Knotentyp viermal größer als der highmem-medium-Typ ist, ist die Leistung nicht viermal höher, da die Leistung von Valkyrie 7.2 nicht linear skaliert, wenn immer größeren Knoten vCPUs hinzugefügt werden (Skalierung nach oben). Wenn Sie eine bessere Preisleistung erzielen möchten, sollten Sie stattdessen eine horizontale Skalierung vornehmen, indem Sie einer Instanz weitere Knoten hinzufügen.

Knotentypspezifikation

Die Knotenkapazität und -merkmale hängen davon ab, welchen der vier verfügbaren Knotentypen Sie auswählen:

Kapazität des Schlüsselbereichs und reservierter Overhead

Knotentyp Standardkapazität des beschreibbaren Schlüsselbereichs Gesamtkapazität des Knotens
shared-core-nano 1,12 GB 1,4 GB
standard-small 5,2 GB 6,5 GB
highmem-medium 10,4 GB 13 GB
highmem-xlarge 46,4 GB 58 GB

Memorystore reserviert automatisch einen Teil der Instanzkapazität, um OOM-Fehler (Out Of Memory) zu vermeiden. So können Schlüssel reibungslos gelesen und geschrieben werden. Arbeitsspeicherlimits und Speicherdetails:

  • Speicherplatz anpassen:Wir empfehlen die Verwendung der Standardeinstellungen. Sie können die Größe des reservierten Speicherplatzes jedoch über die maxmemory-Konfiguration anpassen. Informationen zu maxmemory finden Sie unter Unterstützte Instanzkonfigurationen.

  • Wie viel Speicherplatz erhalten Sie? Siehe Spalte Standardkapazität des beschreibbaren Schlüsselbereichs in der vorherigen Tabelle. Hier sehen Sie, wie viel Speicherplatz standardmäßig für Ihre Schlüssel verfügbar ist.

  • Speicherplatz maximieren: Wenn Sie den maximal möglichen Speicherplatz nutzen möchten, wird in der Spalte Knotenkapazität insgesamt das Speicherlimit angezeigt, wenn Sie die maxmemory-Konfiguration auf 100 % festlegen. Wir empfehlen jedoch, einen maxmemory-Wert auszuwählen, der nicht höher als die Standardeinstellung ist.

  • Der shared-core-nano-Knotentyp hat ein festes Limit von 1, 12 GB und kann nicht über die maxmemory-Konfiguration geändert werden.

Knotenmerkmale

Knotentyp vCPU Anzahl Angebotenes SLA Max. Kunden Maximaler Arbeitsspeicher für Clients (Konfiguration „maxmemory-clients“)
shared-core-nano 0,5 Nein 5.000 12 %
standard-small 2 Ja 16.000 (Standard) Maximalwert: 32.000 7 %
highmem-medium 2 Ja 32.000 (Standard) Maximalwert: 64.000 7 %
highmem-xlarge 8 Ja 64.000 4 %

Instanz skalieren

Wenn Sie eine Memorystore for Redis-Instanz erstellen, 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, kann es sein, dass Sie sie aufgrund von Änderungen der Kapazitätsanforderungen skalieren müssen. Dazu stehen Ihnen folgende Möglichkeiten zur Verfügung:

  • Ä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 verkleinert.
    • Entfernen Sie Shards aus der Instanz. Dadurch wird die Instanz 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. Dadurch wird die Instanz vertikal skaliert.
    • Wechseln Sie zu einem kleineren Knotentyp. Dadurch wird die Instanz verkleinert.

Instanzspezifikation

In diesem Abschnitt werden die minimale und maximale Instanzkapazität für die Instanzform, den Knotentyp und die Anzahl der Replikats angezeigt.

Minimale beschreibbare Kapazität

Die beschreibbare Kapazität ist die Menge an Speicherplatz, die zum Schreiben von Schlüsseln verfügbar ist. Sie entspricht der Größe eines Instanzknotens. Je nach Knotentyp beträgt die Mindestschreibkapazität daher 1,4 GB, 6,5 GB, 13 GB oder 58 GB. Die Mindestschreibkapazität wird nicht von der Anzahl der ausgewählten Replikats beeinflusst.

Maximale beschreibbare Kapazität

Knotentyp und -größe Maximale Kapazität im Clustermodus deaktiviert Maximale Kapazität im Clustermodus bei einer Instanzkonfiguration mit 250 primären Knoten und 0 Repliken pro Knoten Maximale Kapazität im Clustermodus bei einer Instanzkonfiguration mit 125 primären Knoten und 1 Replik pro Knoten Maximale Kapazität im Clustermodus bei einer Instanzkonfiguration mit 83 primären Knoten und 2 Replikas pro Knoten
shared-core-nano – 1,4 GB 1,12 GB 350 GB 175 GB 116,2 GB
standard-small – 6,5 GB 5,2 GB 1.625 GB 812,5 GB 539,5 GB
highmem-medium – 13 GB 10,4 GB 3.250 GB 1.625 GB 1.079 GB
highmem-xlarge – 58 GB 46,4 GB 14.500 GB 7.250 GB 4.814 GB

Leistung

Mit dem OSS-Benchmarking-Tool memtier in der Region us-central1 wurden 120.000 bis 130.000 Vorgänge pro Sekunde pro 2 vCPU-Knoten (standard-small und highmem-medium) mit einer Latenz von Mikrosekunden und einer Datengröße von 1 KiB erzielt.

Wir empfehlen, eigene Benchmarks mit echten oder synthetischen Arbeitslasten durchzuführen, die Ihrem Produktionstraffic ähneln. Außerdem empfehlen wir, Ihre Instanzen mit einem Puffer (oder „Headroom“) für Arbeitslastspitzen oder unerwartete Zugriffe zu dimensionieren. Weitere Informationen finden Sie in den Best Practices.

Instanzendpunkte für aktivierten Clustermodus

In diesem Abschnitt werden die Endpunkte für die Erkennung und die Daten beschrieben, die für Instanzen mit aktiviertem Clustermodus gelten.

Endpunkt der Erkennung

Jede Instanz hat einen Discovery-Endpunkt, mit dem Ihr Client eine Verbindung herstellt. Sie besteht aus einer Kombination aus IP-Adresse und Portnummer. Eine Anleitung zum Finden des Discovery-Endpunkts Ihrer Instanz finden Sie unter Discovery-Endpunkt der Instanz ermitteln.

Ihr Client verwendet es auch für die Knotenerkennung. Ihr Client verwendet den Discovery-Endpunkt, um die Knotentopologie Ihrer Instanz abzurufen, um Drittanbieter-Clients zu starten und sie im stabilen Zustand zu halten. Die resultierende Knotentopologie stellt Knotenendpunkte (IP- und Portkombinationen) bereit, die vom Drittanbieterclient im Arbeitsspeicher zwischengespeichert werden. Ihr Kunde kümmert sich dann automatisch um die Aktualisierungen und Weiterleitungen, ohne dass weitere Änderungen an der Anwendung erforderlich sind. Informationen zum Verhalten der Clientermittlung und zu Best Practices finden Sie unter Clientermittlung.

Der Discovery-Endpunkt ist hochverfügbar, da er von mehreren Knoten in mehreren Zonen unterstützt wird, um die Knotentopologie zu bedienen. Die Bereitstellungstopologie über den Endpunkt ist robust, auch bei Fehlern oder Updates von Backend-Knoten.

Für den Discovery-Endpunkt gilt Folgendes:

  1. Der Discovery-Endpunkt Ihrer Instanz bleibt während des gesamten Lebenszyklus der Instanz unverändert, auch während der Wartung oder durch andere Aktionen wie das Skalieren nach oben oder unten oder das Ändern der Anzahl der Repliken.

  2. Knotenendpunkte können sich ändern und wiederverwendet werden, da Knoten im Laufe der Zeit hinzugefügt und entfernt werden. Idealerweise sollten Sie einen Drittanbieter-Client verwenden, der diese Änderungen automatisch durch Aktualisieren der Topologie und Weiterleitungen verarbeiten kann. Beispiele für Clients von Drittanbietern finden Sie unter Codebeispiele für Clientbibliotheken. Ihre Anwendung sollte keine Abhängigkeiten oder Annahmen haben, dass Knotenendpunkte für eine bestimmte Instanz unverändert bleiben.

Datenendpunkt

Jede Instanz hat auch einen Private Service Connect-Datenendpunkt, den Memorystore for Valkey für die Clientverbindung verwendet. Stellen Sie keine direkte Verbindung zu diesem Endpunkt her. Stattdessen verwendet Memorystore for Redis diesen Endpunkt, um Ihren Client mit Knoten in Ihrer Instanz zu verbinden.

Instanzendpunkte für deaktivierten Clustermodus

In diesem Abschnitt werden die primären und Reader-Endpunkte beschrieben, die jede Instanz mit deaktiviertem Clustermodus hat.

Primärer Endpunkt

Der primäre Endpunkt ist eine IP-Adresse, mit der sich Ihre Anwendung verbindet. Dieser Endpunkt leitet den Traffic an den aktuellen primären Knoten weiter. Verbindungen zum primären Endpunkt können sowohl Schreib- als auch Leseabfragen senden.

Ihr primärer Endpunkt hat folgende Eigenschaften:

  1. Die IP-Adresse des primären Endpunkts bleibt während des gesamten Lebenszyklus der Instanz unverändert. Wenn der zugrunde liegende Knoten ausfällt oder ein automatisches Failover auftritt, passt Memorystore for Redis die IP-Adresse automatisch an. Für Clients sind keine Änderungen am Endpunkt erforderlich. Wenn jedoch unvorhergesehene Ereignisse zu Verbindungsfehlern führen, versuchen die Clients, eine Verbindung wiederherzustellen.
  2. Wenn ein primärer Knoten zum Replikat wird, werden die Verbindungen zu diesem Replikatknoten beendet und Memorystore for Valkey leitet neue Verbindungen über ein automatisches Failover an den neuen primären Knoten weiter. Clients müssen Verbindungen mit exponentiellem Backoff wiederholen.
  3. Wenn die Instanz ein Replikat hat, hat der primäre Endpunkt eine höhere Verfügbarkeit als der Leserendpunkt. Wenn für die Instanz zwei Replikate bereitgestellt sind, haben sowohl der primäre Endpunkt als auch der Leseendpunkt eine hohe Verfügbarkeit.

Reader-Endpunkt

Der Leserendpunkt ist eine IP-Adresse, mit der sich Ihre Anwendung verbindet. Dieser Endpunkt verteilt die Verbindungen gleichmäßig auf die Replikate in der Instanz. Verbindungen zum Lesereplikat können Leseabfragen senden, aber keine Schreibabfragen. Der Leserendpunkt erhöht den Durchsatz und sorgt für eine Traffic-Isolation vom primären Knoten. Für Anwendungen, die einen betrieblichen Zugriff erfordern, z. B. riskante Scripts und Offlinejobs, empfehlen wir, den Traffic vom primären Knoten zu isolieren, indem Sie den Reader-Endpunkt verwenden.

Der Reader-Endpunkt verhält sich so:

  1. Auch wenn für eine Instanz keine Lesereplikate bereitgestellt sind, wird in Memorystore for Redis die IP-Adresse des Leserendpunkts bereitgestellt, um das dynamische Hinzufügen von Lesereplikaten zu ermöglichen.
  2. Wenn das System keine verfügbaren Lesereplikate hat, an die der Traffic weitergeleitet werden kann, wird die Verbindung zum Leserendpunkt beendet. Verbindungen, die zum Leseendpunkt hergestellt wurden, werden jedoch nicht zum primären Knoten weitergeleitet.
  3. Wenn ein Replikatknoten zum primären Knoten wird, werden die Verbindungen zu diesem primären Knoten beendet und Memorystore for Valkey leitet neue Verbindungen an den neuen Replikatknoten weiter. Clients wiederholen diese Verbindungen mit exponentiellem Backoff.

Informationen zum Umgang mit häufigen Fehlern beim Verbinden mit Endpunkten im Clustermodus deaktiviert finden Sie unter Fehler im Clustermodus deaktiviert beheben.