Qual è il nome completo di Redis RDB? Modalità operativa di persistenza dei dati della memoria Redis RDB

Il nome completo di RDB èRedis database.

  • Come suggerisce il nome, RDB è un database Redis utilizzato per archiviare i dati.
  • Pertanto, tramite la persistenza RDB, i dati archiviati nella memoria Redis vengono scritti nel file RDB e salvati sul disco per ottenere la persistenza.
  • La caratteristica di Redis è che può persistere i dati, ovvero scrivere i dati dalla memoria al disco per garantire che nessun dato venga perso e può anche caricare i dati dal disco alla memoria.

Qual è il nome completo di Redis RDB? Modalità operativa di persistenza dei dati della memoria Redis RDB

Le operazioni di Redis all'inizio sono tutte basate sulla memoria, quindi le prestazioni sono molto elevate, ma una volta chiuso il programma i dati vanno persi.

Pertanto, è necessario scrivere i dati in memoria su disco a intervalli specificati, che in gergo è Snapshot.

Durante il ripristino, il file di istantanea viene scritto direttamente nella memoria.

Questa è anche una delle principali differenze tra Redis e Memcached, perché Memcached non ha capacità di persistenza.

Per la persistenza dei dati della memoria Redis, Redis ci fornisce i seguenti metodi:

  • Metodo Snapshot (RDB, Redis DataBase): scrivi i dati di memoria su disco in forma binaria in un determinato momento;
  • Aggiungi solo file (AOF, Aggiungi solo file), registra tutti i comandi operativi e aggiungi al file in formato testo;
  • Persistenza ibrida, un nuovo metodo dopo Redis 4.0, la persistenza ibrida combina i vantaggi di RDB e AOF.Durante la scrittura, scrivi prima i dati correnti all'inizio del file sotto forma di RDB, quindi salva i successivi comandi operativi nel file sotto forma di AOF, che può non solo garantire la velocità di riavvio di Redis, ma anche ridurre il rischio di perdita di dati.

Perché ogni schema di persistenza ha scenari di utilizzo specifici.

Modalità operativa di persistenza dei dati della memoria Redis RDB

  • RDB (Redis DataBase) è il processo di scrittura di uno snapshot di memoria (Snapshot) in un determinato momento su disco in forma binaria.
  • Gli snapshot di memoria sono ciò che abbiamo detto sopra.Si riferisce al record di stato dei dati in memoria in un determinato momento.
  • È simile a scattare una foto Quando scatti una foto di un amico, una foto può registrare istantaneamente tutte le immagini dell'amico.
  • Esistono due modi per attivare RDB: uno è l'attivazione manuale e l'altro è l'attivazione automatica.

Attiva manualmente l'RDB

Esistono due operazioni per attivare manualmente la persistenza:savebgsave.

La principale differenza tra loro è se bloccare o meno l'esecuzione del thread principale Redis.

1. comando di salvataggio

L'esecuzione del comando di salvataggio sul lato client attiverà la persistenza di Redis, ma renderà anche Redis in uno stato di blocco. Non risponderà ai comandi inviati da altri client fino a quando l'RDB non sarà persistente, quindi deve essere utilizzato con cautela in l'ambiente di produzione.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Il processo di esecuzione del comando è mostrato nella figura 

2. comando bgsave

  • bgsave (salvataggio in background) è un salvataggio in background.
  • La più grande differenza tra esso e il comando save è che bgsave eseguirà il fork di un processo figlio per eseguire la persistenza.
  • L'intero processo avviene solo quando il processo figlio è fork.C'è solo un breve blocco.
  • Dopo aver creato il processo figlio, il processo principale di Redis può rispondere alle richieste di altri client.

con il blocco dell'intero processosaverispetto al comandobgsaveIl comando è ovviamente più adatto a noi da usare.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Attiva automaticamente RDB

Dopo aver parlato dell'attivazione manuale, diamo un'occhiata all'attivazione automatica.Possiamo configurare le condizioni per l'attivazione automatica nel file di configurazione.

1. salvare mn

  • save mn significa che entro m secondi, se n tasti cambiano, la persistenza viene automaticamente attivata.I parametri m e n si trovano nel file di configurazione Redis.
  • Ad esempio, save 60 1 significa che entro 60 secondi, finché una chiave cambia, verrà attivata la persistenza RDB.
  • L'essenza dell'attivazione automatica della persistenza è che se le condizioni di attivazione impostate sono soddisfatte, Redis eseguirà automaticamente il comando bgsave una volta.

Nota: quando sono impostati più comandi save mn, qualsiasi condizione attiverà la persistenza.

Ad esempio, impostiamo i seguenti due comandi save mn:

save 60 10
save 600 20
  • Quando il valore della chiave Redis cambia 60 volte entro 10 secondi, verrà attivata la persistenza;
  • Se la chiave Redis cambia entro 60 secondi e se il valore cambia meno di 10 volte, Redis determinerà se la chiave Redis è stata modificata almeno 600 volte entro 20 secondi e, in tal caso, attiverà la persistenza.

2. Flushall

  • Il comando flushall viene utilizzato per svuotare il database Redis.
  • Deve essere utilizzato con cautela in un ambiente di produzione.
  • Quando Redis esegue il comando flushall, attiva la persistenza automatica e cancella il file RDB.

3. Trigger di sincronizzazione master-slave

Nella replica master-slave Redis, quando il nodo slave esegue un'operazione di replica completa, il nodo master eseguirà il comando bgsave per inviare il file RDB al nodo slave.Questo processo attiva automaticamente la persistenza Redis.

Redis può interrogare i parametri di configurazione correnti tramite comandi.

Il formato del comando query è:config get xxx

Ad esempio, se si desidera ottenere l'impostazione del nome di archiviazione per un file RDB, è possibile utilizzare config get dbfilename .

L'effetto dell'esecuzione è il seguente:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Poiché il server Redis si bloccherà durante il caricamento del file RDB fino al completamento del caricamento, ciò potrebbe richiedere molto tempo e non è possibile accedere al sito Web.

Se desideri eliminare manualmente il file della cache RDB dump.rdb di Redis, puoi utilizzare il comando seguente per trovare il percorso di archiviazione del file dump.rdb▼

find / -name dump.rdb
  • Quindi, elimina manualmente il file di cache dump.rdb tramite SSH.

Redis imposta la configurazione di RDB

Per quanto riguarda l'impostazione della configurazione di RDB, puoi utilizzare i seguenti due modi:

  1. Modifica manualmente il file di configurazione di Redis
  2. Utilizzare le impostazioni della riga di comando, config set dir "/usr/data" è il comando di archiviazione per modificare il file RDB

Nota: la configurazione in redis.conf può essere ottenuta tramite config get xxx e modificata tramite config set xxx value, e il metodo di modifica manuale del file di configurazione Redis è globalmente efficace, ovvero i parametri impostati riavviando il server Redis non lo faranno andrà perso, ma modificato usando il comando , andrà perso dopo il riavvio di Redis.

Tuttavia, se si desidera modificare manualmente il file di configurazione Redis affinché abbia effetto immediato, è necessario riavviare il server Redis e il metodo di comando non richiede il riavvio del server Redis.

Recupero file RDB

All'avvio del server Redis, se il file RDB dump.rdb esiste nella directory principale di Redis, Redis caricherà automaticamente il file RDB per ripristinare i dati persistenti.

Se non è presente alcun file dump.rdb nella directory principale, spostare il file dump.rdb nella directory principale di Redis.

Naturalmente, ci sono informazioni di registro all'avvio di Redis, che mostreranno se il file RDB è caricato.

Il server Redis si blocca durante il caricamento del file RDB fino al completamento del caricamento.

Ora sappiamo che la persistenza RDB è divisa in due modi: trigger manuale e trigger automatico:

  1. Il suo vantaggio è che il file di archiviazione è piccolo e il recupero dei dati è più veloce all'avvio di Redis.
  2. Lo svantaggio è che c'è il rischio di perdita di dati.

Anche il recupero dei file RDB è molto semplice: basta mettere il file RDB nella directory principale di Redis e Redis caricherà e ripristinerà automaticamente i dati all'avvio.

Pro e contro di RDB

1) Vantaggi RDB

Il contenuto RDB è costituito da dati binari, occupa meno memoria, è più compatto ed è più adatto come file di backup;

RDB è molto utile per il ripristino di emergenza, è un file compresso che può essere trasferito su un server remoto più velocemente per il ripristino del servizio Redis;

RDB può migliorare notevolmente la velocità di Redis, perché il processo Redis principale eseguirà il fork di un processo figlio per rendere persistenti i dati su disco.

Il processo principale Redis non esegue operazioni come l'I/O del disco;

Rispetto ai file in formato AOF, i file RDB si riavviano più velocemente.

2) Svantaggi di RDB

Poiché RDB può salvare i dati solo a un determinato intervallo di tempo, se il servizio Redis viene interrotto accidentalmente nel mezzo, i dati Redis andranno persi per un periodo di tempo;

Un processo in cui RDB richiede frequenti fork per mantenerlo su disco utilizzando la sottovoce.

Se il set di dati è di grandi dimensioni, il fork può richiedere molto tempo e, se il set di dati è di grandi dimensioni, le prestazioni della CPU sono scarse, il che può impedire a Redis di servire i client per alcuni millisecondi o addirittura per un secondo.

Naturalmente, possiamo anche disabilitare la persistenza per migliorare l'efficienza di esecuzione di Redis.

Se non sei sensibile alla perdita di dati, puoi farlo quando il client si connette config set save "" Comando per disabilitare la persistenza per Redis.

redis.conf, se dentrosaveCommenta tutte le configurazioni all'inizio e anche la persistenza verrà disabilitata, ma in genere non viene eseguita.

Speranza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ha condiviso "Qual è il nome completo di Redis RDB? Redis RDB In-Memory Data Persistence Modalità operativa, utile per te.

Benvenuti a condividere il link di questo articolo:https://www.chenweiliang.com/cwl-26677.html

Benvenuto nel canale Telegram del blog di Chen Weiliang per ricevere gli ultimi aggiornamenti!

🔔 Sii il primo a ricevere la preziosa "Guida all'utilizzo dello strumento AI di marketing dei contenuti ChatGPT" nella directory principale del canale! 🌟
📚 Questa guida contiene un valore enorme, 🌟Questa è un'opportunità rara, non perderla! ⏰⌛💨
Condividi e metti mi piace se ti va!
La tua condivisione e i tuoi like sono la nostra continua motivazione!

 

发表 评论

L'indirizzo email non verrà pubblicato. 必填 项 已 用 * 标注

滚动 到 顶部