Migrar para a Cache do Azure para Redis

Este artigo descreve várias abordagens para migrar uma cache de Redis existente em execução no local ou noutro serviço cloud para Cache do Azure para Redis.

Cenários de migração

O Redis open-source pode ser executado em muitos ambientes de computação. Exemplos comuns incluem:

  • No local – caches de Redis em execução em datacenters privados.
  • VMs baseadas na cloud – caches de Redis em execução em VMs do Azure, AWS EC2, etc.
  • Serviços de alojamento – serviços Redis geridos, como o AWS ElastiCache.

Se tiver uma cache deste tipo, poderá movê-la para Cache do Azure para Redis com um período de indisponibilidade ou interrupção mínimo.

Se quiser mudar de uma região do Azure para outra, recomendamos que veja o nosso artigo Mover instâncias Cache do Azure para Redis para regiões diferentes.

Opções de migração

Existem diferentes formas de mudar de uma cache para outra. Dependendo de onde está a cache e de como a sua aplicação interage com a mesma, um método será mais útil do que os outros. Algumas das estratégias de migração utilizadas frequentemente são detalhadas abaixo.

Opção Vantagens Desvantagens
Criar uma nova cache Mais simples de implementar. É necessário repovoar os dados para a nova cache, o que pode não funcionar com muitas aplicações.
Exportar e importar dados através do ficheiro RDB Compatível geralmente com qualquer cache de Redis. Alguns dados podem ser perdidos, se forem escritos na cache existente depois de o ficheiro RDB ser gerado.
Dados de escrita dupla em duas caches Sem perda de dados ou tempo de inatividade. Operações ininterruptas da cache existente. Teste mais fácil da nova cache. Precisa de duas caches durante um longo período de tempo.
Migrar dados através de programação Controlo total sobre a forma como os dados são movidos. Requer código personalizado.

Criar uma nova Cache do Azure para Redis

Tecnicamente, esta abordagem não é uma migração. Se a perda de dados não for uma preocupação, a forma mais fácil de mover para Cache do Azure para Redis é criar uma instância de cache e ligar a sua aplicação à mesma. Por exemplo, se utilizar o Redis como uma cache de registos de base de dados, pode facilmente reconstruir a cache do zero.

Os passos gerais para implementar esta opção são:

  1. Crie uma nova instância Cache do Azure para Redis.

  2. Atualize a aplicação para utilizar a nova instância.

  3. Elimine a instância de Redis antiga.

Exportar dados para um ficheiro RDB e importá-los para Cache do Azure para Redis

O Redis open source define um mecanismo padrão para tirar um instantâneo do conjunto de dados dentro da memória de uma cache e guardá-lo num ficheiro. Este ficheiro, denominado RDB, pode ser lido por outra cache de Redis. Cache do Azure para Redis escalão premium suporta a importação de dados para uma instância de cache através de ficheiros RDB. Pode utilizar um ficheiro RDB para transferir dados de uma cache existente para Cache do Azure para Redis.

Importante

O formato de ficheiro RDB pode ser alterado entre as versões do Redis e pode não manter a retrocompatibilidade. A versão redis da cache a partir da qual está a exportar deve ser igual ou inferior à versão fornecida pelo Cache do Azure para Redis.

Os passos gerais para implementar esta opção são:

  1. Crie uma nova instância Cache do Azure para Redis no escalão premium com o mesmo tamanho (ou maior que) a cache existente.

  2. Guarde um instantâneo da cache de Redis existente. Pode configurar o Redis para guardar instantâneos periodicamente ou executar o processo manualmente com os comandos GUARDAR ou BGSAVE . O ficheiro RDB tem o nome "dump.rdb" por predefinição e estará localizado no caminho especificado no ficheiro de configuração redis.conf .

    Nota

    Se estiver a migrar dados no Cache do Azure para Redis, veja estas instruções sobre como exportar um ficheiro RDB ou, em alternativa, utilizar o cmdlet Exportar do PowerShell.

  3. Copie o ficheiro RDB para uma conta de armazenamento do Azure na região onde está localizada a nova cache. Pode utilizar o AzCopy para esta tarefa.

  4. Importe o ficheiro RDB para a nova cache com estas instruções de importação ou o cmdlet Importar do PowerShell.

  5. Atualize a aplicação para utilizar a nova instância de cache.

Escrever em duas caches de Redis em simultâneo durante o período de migração

Em vez de mover dados diretamente entre caches, pode utilizar a aplicação para escrever dados numa cache existente e numa nova que esteja a configurar. A aplicação continuará a ler os dados da cache existente inicialmente. Quando a nova cache tiver os dados necessários, mude a aplicação para essa cache e extinga a antiga. Digamos que, por exemplo, utiliza o Redis como um arquivo de sessões e as sessões da aplicação são válidas durante sete dias. Depois de escrever nas duas caches durante uma semana, terá a certeza de que a nova cache contém todas as informações de sessão não expiradas. Pode confiar nele com segurança a partir desse ponto, sem se preocupar com a perda de dados.

Os passos gerais para implementar esta opção são:

  1. Crie uma nova instância Cache do Azure para Redis no escalão premium com o mesmo tamanho (ou maior que) a cache existente.

  2. Modifique o código da aplicação para escrever nas instâncias novas e originais.

  3. Continue a ler os dados da instância original até que a nova instância seja suficientemente preenchida com dados.

  4. Atualize o código da aplicação para leitura e escrita apenas a partir da nova instância.

  5. Elimine a instância original.

Migrar programaticamente

Pode criar um processo de migração personalizado ao ler dados através de programação a partir de uma cache existente e ao escrevê-los no Cache do Azure para Redis. Esta ferramenta open source pode ser utilizada para copiar dados de uma instância Cache do Azure para Redis para outra. Também está disponível uma versão compilada . Também pode considerar o código fonte um guia útil para escrever a sua própria ferramenta de migração.

Nota

Esta ferramenta não é oficialmente suportada pela Microsoft.

Os passos gerais para implementar esta opção são:

  1. Crie uma VM na região onde está localizada a cache existente. Se o conjunto de dados for grande, escolha uma VM relativamente poderosa para reduzir o tempo de cópia.

  2. Crie uma nova instância Cache do Azure para Redis.

  3. Remova os dados da nova cache para garantir que estão vazios. Este passo é necessário porque a própria ferramenta de cópia não substitui nenhuma chave existente na cache de destino.

    Importante

    Certifique-se de que NÃO remove a cache de origem.

  4. Utilize uma aplicação como a ferramenta open source acima para automatizar a cópia de dados da cache de origem para o destino. Lembre-se de que o processo de cópia pode demorar algum tempo a ser concluído consoante o tamanho do conjunto de dados.

Passos seguintes

Saiba mais sobre as funcionalidades Cache do Azure para Redis.