Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beständigkeitsoptionen
ElastiCache for Valkey bietet zwei Optionen für die Haltbarkeit: synchrone und asynchrone Schreibvorgänge.
Bei synchronen Schreibvorgängen werden erfolgreiche Schreibvorgänge dauerhaft im Multi-AZ Transaktionslog gespeichert, bevor sie an die Clients zurückgegeben werden. Dies führt zu einer Schreiblatenz im einstelligen Millisekundenbereich und stellt sicher, dass im Falle eines Fehlers keine bestätigten Schreibvorgänge verloren gehen.
Bei asynchronen Schreibvorgängen werden erfolgreiche Schreibvorgänge an die Clients zurückgegeben, bevor sie dauerhaft im Transaktionslog gespeichert werden. Multi-AZ Da die Schreibvorgänge nicht darauf warten, dauerhaft im Multi-AZ Transaktionslog gespeichert zu werden, entspricht die Latenz bei Schreibvorgängen der Latenz ohne Haltbarkeit. ElastiCache Im Falle eines Fehlers können jedoch bis zu den letzten 10 Sekunden erfolgreicher Schreibvorgänge verloren gehen.
Um den potenziellen Datenverlust bei asynchronen Schreibvorgängen zu verstehen, sollten Sie das Konzept eines Haltbarkeitspuffers in Betracht ziehen. Der Haltbarkeitspuffer stellt das Höchstalter aller Schreibvorgänge dar, die vom primären Knoten akzeptiert, aber noch nicht im Multi-AZ Transaktionslog gespeichert wurden. Der primäre Knoten zeichnet das Alter des ältesten unbestätigten Schreibvorgangs auf. Solange dieses Alter unter 10 Sekunden liegt, akzeptiert der Knoten weiterhin normal neue Schreibvorgänge. Wenn das Alter des ältesten unbestätigten Schreibvorgangs über 10 Sekunden ansteigt, lehnt der primäre Knoten alle eingehenden Schreibbefehle ab, bis er den Status einholt. Lesevorgänge werden während dieser Zeit weiterhin mit einer Latenz von Mikrosekunden ausgeführt. Sobald die ausstehenden Schreibvorgänge bestehen bleiben, nimmt der Knoten automatisch die Annahme von Schreibvorgängen wieder auf. Dadurch wird sichergestellt, dass der potenzielle Datenverlust im Falle eines Fehlers auf Schreibvorgänge im Wert von 10 Sekunden begrenzt ist.
Wenn Sie Ihren Client so konfigurieren, dass er Datenverkehr an einen asynchronen, dauerhaften Cluster sendet, stellen Sie sicher, dass der Client alle Schreibbefehle, die mit der Fehlermeldung „Cluster down“ abgelehnt werden, automatisch wiederholt und exponentiell zurückgestellt wird. Anleitungen zur Konfiguration Ihrer Clients für den Umgang mit diesen und anderen vorübergehenden Fehlern finden Sie unter Bewährte Methoden: OSS-Clients und Amazon. Valkey/Redis ElastiCache
Auswahl einer Dauerhaftigkeitsoption
Verwenden Sie synchrone Schreibvorgänge, wenn Ihre Anwendung bei Ausfällen keinen Datenverlust toleriert. Synchrone Schreibvorgänge können Sie ElastiCache für eine breitere Palette von Anwendungsfällen verwenden, die über das Zwischenspeichern hinausgehen und bei denen ein Datenverlust nicht akzeptabel ist, wie z. B. Wissensdatenbanken für RAG-Anwendungen, Speicher für KI-Agenten, Workflow-Status für KI-Agenten, Tokenisierung von Zahlungen, Streaming-Metadaten, Spielerstatus und Inventarverwaltung in Echtzeit.
Verwenden Sie asynchrone Schreibvorgänge, wenn Ihre Anwendung der Schreibleistung Priorität einräumt und den potenziellen Verlust von Daten ohne Übertragung von bis zu 10 Sekunden bei einem Ausfall tolerieren kann. Diese Option ist ideal für Workloads wie das Zwischenspeichern von Anwendungsdaten, Sitzungsspeicher, Gaming-Bestenlisten und Echtzeitanalysen.
Bei dauerhaften Clustern sollte eine Räumung in Erwägung gezogen werden
Dauerhafte Cluster verwenden dieselbe Standardparametergruppe wie nicht langlebige Cluster. Diese Parametergruppe ist maxmemory-policy auf volatile-lru festgelegt. Aufgrund dieser Richtlinie entfernt Amazon ElastiCache möglicherweise Schlüssel, für die eine Gültigkeitsdauer (TTL) festgelegt ist, wenn der Speicher unter Druck steht. Das kann sogar auf einem dauerhaften Cluster passieren.
Um zu verhindern, dass Schlüssel mit einer TTL entfernt werden, erstellen Sie eine benutzerdefinierte Parametergruppe und setzen Sie sie auf. maxmemory-policy noeviction Mit geben Schreibbefehle einen Fehler zurücknoeviction, wenn der Speicher voll ist, anstatt Schlüssel zu entfernen.
Überwachen Sie BytesUsedForCache und DatabaseMemoryUsagePercentage stellen Sie sicher, dass Ihr Cluster über genügend Arbeitsspeicher für Ihre Arbeitslast verfügt.