le mie informazioni di contatto
Posta[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Quando un nodo Redis (nodo Slave) riceve un'istruzione simile a slaveof 127.0.0.1 6380 finché non può continuare a copiare i dati dal master, generalmente passa attraverso il seguente processo:
Quando lo slave riceve il comando slaveof, lo slave salverà immediatamente il nuovo indirizzo master.
Lo slave mantiene un'attività pianificata, che tenterà di stabilire una connessione socket con il master. Se non è possibile stabilire la connessione, verrà riprovata periodicamente finché la connessione non avrà successo o non verrà ricevuto il comando slaveof no one.
Dopo che la connessione è stata stabilita con successo, lo slave invierà il comando ping per la prima comunicazione. Se lo slave non riceve una risposta dal master, si disconnetterà attivamente e l'attività pianificata successiva ritenterà la connessione.
Se il master riceve il comando ping dallo slave, non risponderà immediatamente, ma eseguirà prima l'autenticazione.Se la verifica fallisce verrà inviato un messaggio per rifiutare la connessione; se la verifica ha esito positivo verrà inviata allo slave una risposta di connessione avvenuta con successo.
Dopo che la prima comunicazione ha avuto esito positivo, lo slave invierà una richiesta di sincronizzazione dei dati al master. Quando il master riceve la richiesta, distribuirà un processo figlio in modo che il processo figlio possa essere mantenuto immediatamente in modo asincrono.
Una volta completata la persistenza, il master distribuirà un processo figlio e consentirà al processo figlio di inviare dati allo slave in modo asincrono. Lo slave scriverà continuamente i dati ricevuti nel file di persistenza locale.
Durante il processo di sincronizzazione dei dati dello slave, il processo principale del master accetta continuamente operazioni di scrittura dal client e non solo scrive nuovi dati nella memoria master, ma li scrive anche nella cache di sincronizzazione. Dopo che i dati nel file di persistenza del master sono stati inviati, il master invierà i nuovi dati nella cache di sincronizzazione allo slave e lo slave li scriverà nel file di persistenza locale.Sincronizzazione dei dati completata
Una volta completata la sincronizzazione dei dati tra lo slave e il master, lo slave leggerà il file persistente locale, lo ripristinerà nella memoria locale e quindi fornirà servizi di lettura esterni.
Durante il processo in cui lo slave fornisce servizi esterni, il master invierà continuamente nuovi dati allo slave in modo incrementale per garantire la coerenza dei dati master-slave.