Auf dieser Seite finden Sie eine Anleitung zur optimalen Verwendung von Memorystore for Redis. Diese Seite weist auch auf mögliche Probleme hin.
Eine Liste mit Szenarien zur Fehlerbehebung finden Sie unter Fehlerbehebung.
RDB-Export
Beachten Sie beim Exportieren einer RDB-Sicherung die folgende Anleitung:
- Während eines niedrigen Schreibsatzes exportieren.
- Wenn Sie während einer Periode mit hoher Schreibrate exportieren, senken Sie die
maxmemory
-Konfiguration vorübergehend auf 50 % der Instanzkapazität, um genügend Overhead für eine erfolgreiche Operation bereitzustellen.
Ressourcenintensive Vorgänge
Bei Redis-Instanzen der Standardstufe verwenden die folgenden Vorgänge zusätzlichen Speicher für die Dauer des Vorgangs:
Durch ein Upgrade der Version, des Autoscaling und des manuellen Failovers wird aufgrund der Replikation zusätzlicher Speicher (für Instanzen der Standardstufe) verbraucht. Diese Vorgänge folgen dem Replikationsprozess, wie unter Standardverhalten der Instanz-Upgrade beschrieben.
Für Import- und Exportvorgänge ist zusätzlicher Speicher erforderlich, da der fehlerhafte Prozess der Redis-Prozesse und das Kopieren/Schreiben unter diesen Vorgängen beansprucht werden.
Zur Verringerung der Nachteile ressourcenintensiver Vorgänge sollten Sie Folgendes tun:
- Verringern Sie die maxmemory-Konfiguration auf 80 % der Instanzkapazität für die Dauer des Vorgangs. Dies ist ein ausreichender Overhead für einen erfolgreichen Vorgang.
- Beobachten Sie den Messwert für das Verhältnis der Systemspeicherauslastung und achten Sie darauf, dass dieser Messwert weniger als 80 % beträgt, bevor Sie einen dieser Vorgänge ausführen.
- Führen Sie diese Vorgänge in Zeiten mit niedrigem Instanztraffic aus, z. B. über Nacht oder am Wochenende.
- Richten Sie eine Wiederholungslogik mit exponentiellem Backoff ein, bevor Sie diese Vorgänge ausführen.
Vorgänge und Szenarien, für die eine Verbindungswiederholung erforderlich ist
Folgende Vorgänge und Szenarien unterbrechen die Netzwerkverbindung zwischen Ihrem Netzwerk und der Redis-Instanz:
- Versionsupgrade
- Hoch-/Herunterskalieren
- Wird importiert...
- Manueller Failover
- Systemwartung
- Rotation von Zertifizierungsstellen für Redis-Instanzen mit aktivierter Verschlüsselung während der Übertragung
- Notfall-Failover
Durch diese Vorgänge wird Ihre Instanz geändert, sodass eine vorübergehende Verbindungsunterbrechung notwendig ist. Sie müssen eine Wiederholungslogik mit exponentiellem Backoff eingerichtet haben, bevor diese Vorgänge ausgeführt werden, damit Ihre Anwendung automatisch wieder eine Verbindung herstellt und weiterhin normal funktioniert.
Routinewartung
Memorystore for Redis-Instanzen werden regelmäßig gewartet. Weitere Informationen finden Sie in der Wartungsrichtlinie für Memorystore for Redis.
Setzen Sie folgende Best Practices ein, um auf routinemäßige Wartungen vorbereitet zu sein:
- Legen Sie ein Wartungsfenster fest, in dem Wartungsupdates stattfinden können.
- Planen Sie Wartungsfenster für Zeiten mit geringem Instanztraffic und ausreichendem Arbeitsspeicher-Overhead. Weitere Informationen finden Sie unter Auswirkungen von Wartungsupdates.
- Aktivieren Sie Benachrichtigungen zu Wartungsfenstern, um über bevorstehende Wartungen informiert zu werden.
- Es ist eine Wiederholungslogik mit exponentiellem Backoff erforderlich.
- Simulieren Sie für Instanzen der Standardstufe ein Wartungsereignis mit manuellem Failover, um festzustellen, wie sich das durch die Wartung verursachte Failover auf Ihre Anwendung auswirkt.
- Bei Instanzen der Basis-Stufe können Sie die Auswirkungen eines Wartungsupdates simulieren, indem Sie die Instanz vorübergehend auf eine größere Größe skalieren. Nachdem Sie die Auswirkungen beobachtet haben, können Sie die Größe wieder auf die ursprüngliche Größe zurückskalieren.
Speicherverwaltung
Die Arbeitsspeicherverwaltung kann aufgrund der bekannten Speicherfragmentierung, die mit Open-Source-Redis auftritt, eine Herausforderung sein. Wir empfehlen Ihnen, die Konfiguration von maxmemory
für Ihre Instanz zu senken, um sich im Falle eines hohen Arbeitsspeichers durch Overhead zu kümmern.
Die beste Methode zur Überwachung des Arbeitsspeicherbedarfs auf Ihrer Memorystore-Instanz ist die Verwendung des Verhältnisses zur Systemspeicherauslastung. Eine ausführlichere Anleitung zum Verwalten von Arbeitsspeicher für Memorystore for Redis finden Sie unter Best Practices für Arbeitsspeicherverwaltung.
Inaktive Verbindungen verwalten
Im Laufe der Zeit kann die Anzahl der Verbindungen zu Ihrer Memorystore-Instanz zunehmen, wenn Verbindungen nicht ordnungsgemäß beendet werden. Dies kann sich negativ auf die Leistung auswirken, insbesondere wenn Sie die Verschlüsselung während der Übertragung verwenden. Hierbei gelten maximale Verbindungslimits entsprechend Ihrer Kapazitätsstufe. Um dies zu vermeiden, empfehlen wir die Verwendung des Redis-Konfigurationsparameters timeout
, mit dem Sie die Anzahl der Sekunden festlegen können, bevor inaktive Clientverbindungen automatisch beendet werden.
Ressourcennamen für Access Transparency
Vertrauliche Daten sollten nicht in Memorystore for Redis-Ressourcennamen gespeichert werden. Als Ressourcennamen bezeichnen wir die Namen von Memorystore for Redis-Instanzen und Instanzmetadaten wie Tags. Daten, die in Ressourcennamen gespeichert sind, sind nicht garantiert durch die Access Transparency-Funktion von Google Cloud geschützt und können mit den Compliance-Anforderungen Ihrer Organisation für Access Transparency in Konflikt stehen.
Serverless VPC Access Connector erforderlich für einige serverlose Umgebungen
Einige serverlose Umgebungen benötigen einen Connector für serverlosen VPC-Zugriff, um eine Verbindung zu Memorystore for Redis herzustellen. Richten Sie den Connector für serverlosen VPC-Zugriff für Ihr Projekt ein, wenn Sie eine Verbindung über eine dieser Umgebungen herstellen möchten.
Netzwerk
Wir empfehlen, den Verbindungsmodus für private Dienste den Verbindungsmodus zu verwenden. Memorystore for Redis verwendet zwei Verbindungsmodi: Zugriff auf private Dienste und Direct Peering. Mit dem Verbindungsmodus für den Zugriff auf private Dienste wird die Verwaltung von IP-Bereichen vereinfacht und Sie können bei Bedarf eine freigegebene VPC verwenden.
Der Verbindungsmodus kann nach dem Erstellen einer Instanz nicht mehr geändert werden.
Weitere Informationen finden Sie unter Netzwerk.
Monitoring und Warnungen
Wir empfehlen die Verwendung von Monitoring und Benachrichtigungen, da diese wichtige Signale zur Speichernutzung Ihrer Redis-Instanz liefern. Sie geben außerdem Aufschluss darüber, wie effizient Ihre Redis-Instanz auf eingehende Cache-Anfragen reagiert.
Sie sollten folgende Standardwarnungen einrichten:
- Cloud Monitoring-Benachrichtigung für die Speichernutzung festlegen
- Cloud Monitoring-Benachrichtigung für Systemspeicherauslastung einstellen
Best Practices für die CPU-Auslastung
Die nicht ordnungsgemäße Verwendung teurer Redis-Befehle führt zu hoher Latenz, fehlender Reaktionsfähigkeit oder Verbindungsproblemen. Instanzen der Standardstufe bieten bei der Notfallwiederherstellung eine hohe Verfügbarkeit und beruhen auf der asynchronen Replikation zwischen Primär- und Replikatknoten. Wenn bei einem der Knoten eine ressourcenintensive Befehlsverarbeitung den Redis-Hauptthread blockiert, kann sich dies auf die Replikation auswirken. Wenn das Problem weiterhin besteht und ein Standortausfall auftritt, sind die neuesten Daten, die am Standort des Ausfalls geschrieben wurden, möglicherweise nicht am anderen Standort verfügbar.
Wir empfehlen, Cloud Monitoring zu verwenden, um Benachrichtigungen für den Messwert CPU-Sekunden des Hauptthreads (redis.googleapis.com/stats/cpu_utilization_main_thread
) festzulegen, damit die CPU-Auslastung 0,9 Sekunden für den primären Knoten und 0,5 Sekunden für jeden Replikationsknoten nicht überschreitet.
Wenn Ihre Redis-Instanz die empfohlenen Werte überschreitet, empfehlen wir Ihnen, die Instanz auf eine höhere Kapazitätsstufe zu skalieren oder der Anleitung zur Fehlerbehebung zu folgen, um CPU-intensive Vorgänge zu vermeiden.