Estou surpreso com a falta de resposta a isso, mas entendo que o assunto meio que abrange algo como stackoverflow e algo como troca de pilha. Também estou surpreso com a falta de documentação que consegui encontrar sobre o assunto.
Fiz alguns testes extensivos em um ambiente de teste e, em seguida, continuei com nossa produção e o procedimento que segui parecia funcionar na maior parte:
-
A atualização de 3.0.6 para 5.0.5 em nosso caso parece estar funcionando sem problemas. Como eu disse no post original, usamos o básico no redis e não mudou muito da perspectiva do cliente.
-
Eu fui em frente atualizando nesta ordem:
- Os dois primeiros pares sentinela e, em seguida, o sentinela atualmente no
leader
estado. - Cada um dos nós redis listados como
slaves
(agora conhecido comoreplicas
).- Depois que cada nó for atualizado, ele desejará copiar seu
dump.rdb
do mestre - Uma sincronização pode ser feita para um nó 5 a partir de um nó 3, mas uma vez que um nó 5 é o mestre, um nó 3 não pode sincronizar, então, depois de fazer failover para um nó atualizado, você não pode voltar para a versão anterior.
- Depois que cada nó for atualizado, ele desejará copiar seu
- Finalmente, use os sentinelas para fazer failover para um nó atualizado como mestre e atualize o antigo mestre
- Os dois primeiros pares sentinela e, em seguida, o sentinela atualmente no
Espero que alguém possa achar isso útil daqui para frente.