Compartilhamento de tecnologia

7. Processo de replicação mestre-escravo Redis

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Processo de replicação mestre-escravo Redis

​ Quando um nó Redis (nó escravo) recebe uma instrução semelhante a slaveof 127.0.0.1 6380 até que possa continuar a copiar dados do mestre, ele geralmente passa pelo seguinte processo:

1. Salve o endereço mestre

Quando o escravo receber o comando slaveof, o escravo salvará imediatamente o novo endereço do mestre.

2. Estabeleça conexão

O escravo mantém uma tarefa agendada, que tentará estabelecer uma conexão de soquete com o mestre. Se a conexão não puder ser estabelecida, ele tentará novamente periodicamente até que a conexão seja bem-sucedida ou o comando slaveof no one seja recebido.

3. Escravo envia comando ping

Após a conexão ser estabelecida com sucesso, o escravo enviará o comando ping para a primeira comunicação. Se o escravo não receber uma resposta do mestre, o escravo se desconectará ativamente e a próxima tarefa agendada tentará novamente a conexão.

4. Verifique a identidade do escravo

​ Se o mestre receber o comando ping do escravo, ele não responderá imediatamente, mas realizará a autenticação primeiro.Se a verificação falhar, será enviada uma mensagem para recusar a conexão; se a verificação for bem-sucedida, uma resposta de sucesso de conexão será enviada ao escravo.

5. Domine a persistência

Após o sucesso da primeira comunicação, o escravo enviará uma solicitação de sincronização de dados ao mestre. Quando o mestre recebe a solicitação, ele desembolsa um processo filho para que o processo filho possa ser persistido imediatamente de maneira assíncrona.

6. Envio de dados

Depois que a persistência for concluída, o mestre desembolsará um processo filho e permitirá que o processo filho envie dados para o escravo de forma assíncrona. O escravo gravará continuamente os dados recebidos no arquivo de persistência local.

Durante o processo de sincronização de dados do escravo, o processo principal do mestre ainda aceita continuamente operações de gravação do cliente e não apenas grava novos dados na memória mestre, mas também os grava no cache de sincronização. Após o envio dos dados do arquivo de persistência do mestre, o mestre enviará os novos dados do cache de sincronização para o escravo, e o escravo os gravará no arquivo de persistência local.Sincronização de dados concluída

7. Slave restaura dados de memória

Quando a sincronização de dados entre o escravo e o mestre for concluída, o escravo lerá o arquivo persistente local, restaurará-o na memória local e, em seguida, fornecerá serviços de leitura externos.

8. Replicação incremental contínua

Durante o processo de fornecimento de serviços externos pelo escravo, o mestre enviará continuamente novos dados ao escravo de maneira incremental para garantir a consistência dos dados mestre-escravo.