Questa pagina fornisce una panoramica della persistenza del database Redis (RDB) per Memorystore for Redis Cluster.
La persistenza RDB protegge i dati salvando gli snapshot in uno spazio di archiviazione durevole. Puoi scegliere la frequenza di questi snapshot selezionando un intervallo di snapshot compreso tra un minimo di 1 ora e un massimo di 24 ore.
I nodi con repliche danno la priorità al recupero dati dalla replica. Tuttavia, se sia l'istanza principale che la replica hanno un errore contemporaneamente, i nodi vengono recuperati dallo snapshot più recente.
Se esegui lo scale up del cluster, gli snapshot non includono i nuovi shard fino all'ora dello snapshot pianificato successivo. Se attivi o disattivi la persistenza per un cluster, potrebbe essere necessario eseguire la manutenzione del cluster. Per saperne di più sull'attivazione e la disattivazione della persistenza RDB, consulta Gestisci la persistenza.
La persistenza RDB non comporta costi aggiuntivi per la fatturazione. Questa funzionalità è ideale per i casi d'uso in cui puoi accettare un piccolo grado di inattività dei dati dopo il ripristino. Poiché Memorystore for Redis Cluster utilizza gli snapshot per il ripristino automatico, gli snapshot non sono disponibili per i ripristini manuali. Inoltre, Memorystore for Redis Cluster conserva solo lo snapshot più recente.
Memorystore for Redis Cluster supporta anche la persistenza AOF, ma devi scegliere tra la persistenza AOF o RDB. Non puoi attivare entrambe le modalità di persistenza contemporaneamente. Per ulteriori informazioni sulla scelta tra le modalità di persistenza, consulta la panoramica della persistenza.
Per la massima disponibilità possibile, ti consigliamo di utilizzare un cluster ad alta affidabilità oltre ad abilitare la persistenza. Per saperne di più, consulta Alta affidabilità e repliche.
Pianificazione degli snapshot
L'ora di inizio e l'intervallo dello snapshot determinano la pianificazione
degli snapshot. Gli intervalli di snapshot che puoi impostare sono 1h, 6h, 12h e
24h. Ad esempio, se imposti l'ora di inizio alle 04:00 e l'intervallo su un'ora, gli snapshot iniziano alle 04:00 del giorno in cui attivi la persistenza RDB e continuano ogni ora successiva.
Memorystore for Redis Cluster valuta le pianificazioni di snapshot nel fuso orario UTC. Pertanto, se il tuo fuso orario rispetta le modifiche dell'ora legale, le ore di inizio locali dei job di pianificazione degli snapshot vengono spostate avanti o indietro di un'ora all'inizio e alla fine dell'ora legale.
Messa in pausa degli snapshot
Potresti voler mettere in pausa temporaneamente l'acquisizione di snapshot RDB. Ad esempio, puoi mettere in pausa gli snapshot per evitare impatti sulle prestazioni durante eventi critici o per risolvere problemi di prestazioni.
Se metti in pausa gli snapshot impostando l'ora di inizio nel futuro, Memorystore for Redis Cluster conserva l'ultimo snapshot. Se un nodo non funziona e non riesce a recuperare i dati da una replica, utilizza questo snapshot per recuperarli. Per riprendere gli snapshot, modifica la pianificazione in modo che lo snapshot successivo venga eseguito quando vuoi. Per saperne di più, consulta Modifica l'intervallo degli snapshot RDB.
Comportamento di recupero
I nodi di Memorystore for Redis Cluster eseguono il failover sulle repliche come meccanismo di recupero principale, anziché caricare i dati da uno snapshot. Tuttavia, se un nodo non riesce e non può recuperare i dati da una replica, li recupera dallo snapshot.
Coerenza dei dati al momento del recupero
Quando attivi la persistenza RDB, il cluster fa del suo meglio per acquisire snapshot all'intervallo specificato. Poiché uno snapshot RDB è un backup point-in-time, l'applicazione deve essere in grado di tollerare un certo livello di inattività dopo che Memorystore for Redis Cluster ha recuperato i dati.
Gli snapshot possono non riuscire per diversi motivi. Se uno snapshot non riesce consecutivamente in più intervalli, l'ultimo snapshot disponibile potrebbe essere arbitrariamente obsoleto.
Quando recuperi i dati da uno snapshot, l'obsolescenza dei dati nel peggiore dei casi è la somma dell'intervallo specificato dall'avvio dell'ultimo snapshot valido e del tempo necessario per salvare lo snapshot successivo nello spazio di archiviazione. Se si verifica un incidente di ripristino, utilizza la metrica rdb_save_ages per visualizzare il periodo di tempo di inattività dei dati.
Per ulteriori informazioni su questa metrica, consulta Metriche di persistenza.
Tempo di recupero
Se un nodo si guasta e deve recuperare i dati da uno snapshot, il nodo non è disponibile durante il recupero. Il tempo di recupero dipende dalle dimensioni dello snapshot.
Errori snapshot
Memorystore for Redis Cluster riprova immediatamente a eseguire gli snapshot non riusciti utilizzando il backoff esponenziale compreso tra 5 e 300 secondi. Se si verifica un recupero, gli errori consecutivi degli snapshot aumentano l'obsolescenza dei dati.
Errori di recupero
Gli errori di recupero sono rari, ma possono verificarsi. Se si verifica un errore di recupero, il nodo tenta ripetutamente di recuperare i dati dallo snapshot finché il recupero non va a buon fine.
Monitoraggio degli snapshot
Ti consigliamo di monitorare gli snapshot e di impostare avvisi per gli snapshot non riusciti. Gli snapshot non riusciti possono indicare nodi sovraccarichi che potrebbero continuare ad avere difficoltà a recuperare i dati.
Per ulteriori informazioni sulle best practice per la persistenza RDB, consulta Best practice per la persistenza. Per un elenco delle metriche disponibili per monitorare gli snapshot, consulta Metriche di persistenza.
Impatto sulle prestazioni
Puoi monitorare l'impatto sulle prestazioni di uno snapshot sul tuo cluster utilizzando Cloud Monitoring per visualizzare metriche come l'utilizzo della CPU e la memoria utilizzata.