Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Opzioni di durabilità
ElastiCache for Valkey offre due opzioni di durabilità: scritture sincrone e asincrone.
Con le scritture sincrone, le operazioni di scrittura riuscite vengono archiviate in modo duraturo nel registro delle transazioni prima di essere restituite ai client Multi-AZ . Ciò comporta una latenza di scrittura di una cifra in millisecondi e garantisce che nessuna operazione di scrittura riconosciuta vada persa in caso di errore.
Con le scritture asincrone, le operazioni di scrittura riuscite vengono restituite ai client prima di essere archiviate in modo duraturo nel registro delle transazioni. Multi-AZ Poiché le operazioni di scrittura non attendono di essere archiviate in modo duraturo nel log Multi-AZ transazionale, la latenza delle operazioni di scrittura è equivalente a una latenza senza durata. ElastiCache Tuttavia, in caso di errore si possono perdere fino agli ultimi 10 secondi di operazioni di scrittura riuscite.
Per comprendere la potenziale perdita di dati con scritture asincrone, considera il concetto di buffer di durabilità. Il buffer di durabilità rappresenta l'età massima di qualsiasi scrittura accettata dal nodo primario ma non ancora persistita nel log delle transazioni. Multi-AZ Il nodo primario tiene traccia dell'età della scrittura non riconosciuta più vecchia. Finché questa età rimane inferiore a 10 secondi, il nodo continua ad accettare normalmente nuove scritture. Se l'età della scrittura non riconosciuta più vecchia supera i 10 secondi, il nodo primario rifiuterà tutti i comandi di scrittura in entrata finché non recupererà il ritardo. Le operazioni di lettura continuano a essere eseguite con una latenza di microsecondi durante questo periodo. Una volta mantenute le scritture in sospeso, il nodo riprende ad accettare le scritture automaticamente. Ciò garantisce che la potenziale perdita di dati sia limitata a 10 secondi di scrittura in caso di errore.
Quando configuri il client per inviare traffico a un cluster durevole asincrono, assicurati che il client riprovi automaticamente con un backoff esponenziale tutti i comandi di scrittura rifiutati con il messaggio di errore cluster down. Per indicazioni sulla configurazione dei client per gestire questo e altri errori transitori, consulta Best practice: OSS clients and Amazon. Valkey/Redis ElastiCache
Scelta di un'opzione di durabilità
Utilizzate le scritture sincrone quando l'applicazione non è in grado di tollerare alcuna perdita di dati in caso di guasti. Le scritture sincrone possono essere utilizzate ElastiCache per una serie più ampia di casi d'uso, oltre alla memorizzazione nella cache in cui la perdita di dati non è accettabile, ad esempio le basi di conoscenza per le applicazioni RAG, la memoria degli agenti AI, lo stato del flusso di lavoro degli agenti AI, la tokenizzazione dei pagamenti, i metadati di streaming, lo stato dei giocatori e la gestione dell'inventario in tempo reale.
Usa le scritture asincrone quando l'applicazione dà priorità alle prestazioni di scrittura e può tollerare la potenziale perdita fino a 10 secondi di dati non salvati in caso di errore. Questa opzione è ideale per carichi di lavoro come la memorizzazione nella cache dei dati delle applicazioni, gli archivi di sessioni, le classifiche di gioco e l'analisi in tempo reale.
Considerazione della politica di sfratto per i cluster durevoli
I cluster durevoli utilizzano lo stesso gruppo di parametri predefinito dei cluster non durevoli. Questo gruppo di parametri è impostato su. maxmemory-policy volatile-lru Con questa politica, Amazon ElastiCache potrebbe eliminare le chiavi con un tempo di vita (TTL) impostato quando la memoria è sotto pressione. Ciò può accadere anche su un cluster duraturo.
Per evitare l'eliminazione delle chiavi con un TTL, create un gruppo di parametri personalizzato e impostatelo su. maxmemory-policy noeviction Connoeviction, i comandi di scrittura restituiscono un errore quando la memoria è piena anziché rimuovere le chiavi.
Monitora BytesUsedForCache e DatabaseMemoryUsagePercentage assicurati che il cluster abbia memoria sufficiente per il carico di lavoro.