Allgemeine Best Practices

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:

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:

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:

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:

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

Sensible 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:

Best Practices für die CPU-Nutzung

Unsachgemäße Verwendung von teuren Redis-Befehlen zu hoher Latenz, Unreaktionsfähigkeit oder Verbindungsproblemen führen. Standardstufe bieten Hochverfügbarkeit während der Notfallwiederherstellung und sind asynchrone 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.