Migrar para o Cache do Azure para Redis

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

Cenários de migração

O Redis de código aberto pode ser executado em vários ambientes de computação. Exemplos comuns incluem:

  • Local: caches do Redis em execução em data centers privados.
  • VMs baseadas em nuvem – Caches do Redis em execução nas VMs do Azure, AWS EC2 e assim por diante.
  • Serviços de hospedagem – Serviços gerenciados do Redis, como AWS ElastiCache.

Se você tiver esse cache, talvez seja possível migrá-lo para o Cache do Azure para Redis com o mínimo de interrupção ou tempo de inatividade.

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

Opções de migração

Há diferentes maneiras de mudar de um cache para outro. Dependendo de onde o cache está e de como seu aplicativo interage com ele, um método poderá ser mais útil do que outros. Algumas das estratégias de migração usadas com frequência estão detalhadas abaixo.

Opção Vantagens Desvantagens
Criar um novo cache Mais simples de implementar. Precisa preencher os dados novamente para o novo cache, o que pode não funcionar com muitos aplicativos.
Exportar e importar dados por meio de arquivo RDB Em geral, compatível com qualquer cache do Redis. Alguns dados podem ser perdidos se forem gravados no cache existente depois que o arquivo RDB é gerado.
Dados de gravação dupla em dois caches Nenhuma perda de dados ou tempo de inatividade Operações ininterruptas do cache existente. Teste mais fácil do novo cache. Precisa de dois caches para um longo período de tempo.
Migrar dados programaticamente Controle total sobre como os dados são movidos. É necessário código personalizado.

Criar um novo Cache do Azure para Redis

Tecnicamente, essa abordagem não é uma migração. Se a perda de dados não for uma preocupação, a maneira mais fácil de mudar para o Cache do Azure para Redis é criar uma instância de cache e conectar seu aplicativo a ela. Por exemplo, se você usar o Redis como um cache look aside de registros de banco de dados, poderá recriar o cache do zero facilmente.

As etapas gerais para implementar essa opção são:

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

  2. Atualize seu aplicativo para usar a nova instância.

  3. Exclua a instância antiga do Redis.

Exportar dados para um arquivo RDB e importá-lo para o Cache do Azure para Redis

O Redis de código aberto define um mecanismo padrão para tirar um instantâneo do conjunto de dados na memória de um cache e salvá-lo em um arquivo. Esse arquivo, chamado RDB, pode ser lido por outro cache Redis. A camada Premium do Cache do Azure para Redis dá suporte à importação de dados para uma instância de cache por meio de arquivos RDB. Você pode usar um arquivo RDB para transferir dados de um cache existente para o Cache do Azure para Redis.

Importante

O formato de arquivo RDB pode mudar entre as versões do Redis e pode não manter a compatibilidade com versões anteriores. A versão do Redis do cache que você está exportando deve ser igual ou inferior que a versão fornecida pelo Cache do Azure para Redis.

As etapas gerais para implementar essa opção são:

  1. Crie uma nova instância do Cache do Azure para Redis na camada Premium com o mesmo tamanho (ou maior) que o cache existente.

  2. Salve um instantâneo do cache Redis existente. Você pode configurar o Redis para salvar instantâneos periodicamente ou executar o processo manualmente usando os comandos SAVE ou BGSAVE. O arquivo RDB é denominado "dump.rdb" por padrão e fica localizado no caminho especificado no arquivo de configuração redis.conf.

    Observação

    Se você estiver migrando dados no Cache do Azure para Redis, consulte estas instruções sobre como exportar um arquivo RDB ou use o cmdlet de exportação do PowerShell.

  3. Copie o arquivo RDB para uma conta de armazenamento do Azure na região em que o novo cache está localizado. Você pode usar o AzCopy para essa tarefa.

  4. Importe o arquivo RDB para o novo cache usando essas instruções de importação ou o cmdlet de importação do PowerShell.

  5. Atualize seu aplicativo para usar a nova instância do cache.

Gravar em dois caches Redis simultaneamente durante o período de migração

Em vez de mover os dados diretamente entre os caches, você pode usar seu aplicativo para gravar os dados em um cache já existente e em um novo cache que você esteja configurando. O aplicativo ainda lerá os dados inicialmente do cache existente. Quando o novo cache tiver os dados necessários, você alterna o aplicativo para esse cache e desativa o antigo. Digamos que, por exemplo, você use o Redis como um armazenamento de sessão e as sessões de aplicativo sejam válidas por sete dias. Depois de gravar nos dois caches por uma semana, você terá certeza de que o novo cache contém todas as informações de sessão não expiradas. Desse ponto em diante, você pode confiar nele com segurança sem se preocupar com a perda de dados.

As etapas gerais para implementar essa opção são:

  1. Crie uma nova instância do Cache do Azure para Redis na camada Premium com o mesmo tamanho (ou maior) que o cache existente.

  2. Modifique o código do aplicativo para gravar tanto nas instâncias novas quanto nas originais.

  3. Continue lendo os dados da instância original até que a nova instância esteja suficientemente populada com os dados.

  4. Atualize o código do aplicativo para ler e gravar somente na nova instância.

  5. Exclua a instância original.

Migrar programaticamente

Você pode criar um processo de migração personalizado lendo programaticamente os dados de um cache existente e gravando-os no Cache do Azure para Redis. Essa ferramenta de código aberto pode ser usada para copiar os dados de uma instância do Cache do Azure para Redis para outra. Uma versão compilada também está disponível. Você também pode achar o código-fonte um guia útil para escrever sua própria ferramenta de migração.

Observação

Essa ferramenta não tem suporte oficial da Microsoft.

As etapas gerais para implementar essa opção são:

  1. Crie uma VM na região em que o cache existente esteja localizado. Se o seu conjuntos de dados for grande, escolha uma VM relativamente poderosa para reduzir o tempo de cópia.

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

  3. Libere os dados do novo cache para garantir que estejam vazios. Essa etapa é necessária porque a ferramenta de cópia em si não substitui nenhuma chave existente no cache de destino.

    Importante

    Certifique-se de NÃO liberar do cache de origem.

  4. Use um aplicativo como a ferramenta de código aberto acima para automatizar a cópia de dados do cache de origem para o de destino. Lembre-se de que o processo de cópia pode levar algum tempo para ser concluído, dependendo do tamanho do seu conjuntos de dados.

Próximas etapas

Saiba mais sobre os recursos do Cache do Azure para Redis.