Compartilhar via


Migrar para ou entre instâncias do Azure Cache para Redis

Importante

Azure Cache para Redis anunciou seu cronograma de descontinuação para todas as SKUs. Recomendamos migrar suas instâncias do Cache do Azure para Redis para o Redis Gerenciado pelo Azure assim que possível.

Para obter mais detalhes sobre a aposentadoria:

Este artigo descreve vários cenários de migração do Cache do Azure para Redis. Você pode migrar caches Redis de código aberto em execução localmente ou em máquinas virtuais (VMs) na nuvem, ou caches hospedados de outras plataformas de nuvem, para o Azure Cache for Redis.

Você também pode migrar uma instância do Azure Cache for Redis para outra instância. Se você precisar mover apenas um cache redis do Azure de uma região do Azure para outra, consulte Mover o Cache do Azure para instâncias redis para regiões diferentes.

O Redis de software livre pode ser executado em muitos ambientes de computação, como data centers locais privados ou VMs hospedadas na nuvem. Outras plataformas de hospedagem, como a AWS (Amazon Web Services), hospedam serviços de cache Redis, como o AWS ElastiCache. Normalmente, você pode migrar esses caches Redis para o Cache do Azure para Redis com interrupção mínima ou tempo de inatividade.

Opções de migração

A forma como você migra de um cache para outro depende de onde o cache existe e de como seu aplicativo interage com ele. A tabela a seguir lista estratégias de migração usadas com frequência.

Opção Vantagens Desvantagens
Criar um novo cache Mais simples de implementar. Deve repovoar dados para o novo cache, o que pode não funcionar com alguns aplicativos.
Exportar e importar dados pelo arquivo do banco de dados somente leitura (RDB). Compatível com qualquer cache Redis. Os dados gravados no cache existente após a geração do arquivo RDB podem ser perdidos.
Escreva dados em dois caches simultaneamente. Sem perda de dados ou tempo de inatividade, sem operações de cache interrompidas e testes mais fáceis. Precisa de dois caches por um longo período de tempo.
Migre dados programaticamente. Controle total sobre como os dados são movidos. É necessário código personalizado.

Criar um novo cache

Se as operações ininterruptas e a possível perda de dados não forem preocupações, a maneira mais fácil de mover dados para o Cache do Azure para Redis é criar uma instância de cache redis do Azure 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. Essa abordagem não é tecnicamente uma migração.

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

  1. Criar uma nova instância de Cache do Azure para Redis. Opcionalmente, experimente o Redis Gerenciado do Azure.
  2. Atualize seu aplicativo para usar a nova instância do Azure Redis.
  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 software livre 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 RDB que qualquer cache Redis pode ler. A camada Do Cache do Azure para Redis Premium dá suporte à importação de dados para uma instância de cache por meio do arquivo RDB. Você pode usar o 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 redis do cache exportado deve ser igual ou inferior à versão fornecida pelo Cache do Azure para Redis.

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

  1. Salve um instantâneo do cache Redis existente. Você pode configurar o Redis para salvar instantâneos periodicamente ou salvar um manualmente usando os comandos SAVE ou BGSAVE . O arquivo RDB é chamado dump.rdb por padrão e está localizado no caminho especificado no arquivo de configuração redis.conf .
  2. Crie uma nova instância do Cache do Azure para Redis de camada Premium que seja pelo menos tão grande quanto o cache existente.
  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 AzCopy para esta tarefa.
  4. Importe o arquivo RDB para o novo cache. Você também pode usar o cmdlet Import-AzRedisCache do PowerShell.
  5. Atualize seu aplicativo para usar a nova instância do cache.

Observação

Para migrar dados de outra instância do Azure Redis, primeiro exporte o arquivo RDB dessa instância ou use o cmdlet Export-AzRedisCache do PowerShell.

Gravar em dois caches Redis durante a migração

Em vez de mover dados entre caches, você pode definir temporariamente seu aplicativo para gravar dados em um cache existente e em um novo. Inicialmente, o aplicativo lê dados do cache existente. Quando o novo cache tiver dados suficientes, você poderá alternar o aplicativo para esse cache e desativar o antigo.

Por exemplo, suponha que você use o Redis como um repositório de sessão e as sessões de aplicativo expirem após sete dias. Depois de gravar em ambos os caches por sete dias, você sabe que o novo cache contém todas as informações de sessão não expiradas e pode confiar nele com segurança desse ponto em diante. Em seguida, você pode desativar o cache antigo.

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

  1. Crie uma nova instância do Cache do Azure para Redis de camada Premium que seja pelo menos tão grande quanto o cache existente.
  2. Modifique o código do aplicativo para gravar nas instâncias novas e originais.
  3. Continue usando dados da instância original até que a nova instância seja preenchida com dados suficientemente.
  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 uma migração personalizada lendo programaticamente dados de um cache existente e gravando-os no Cache do Azure para Redis. Por exemplo, você pode usar a ferramenta de código aberto redis-copy para copiar dados de uma instância do Azure Redis para outra.

O código-fonte pode ser um guia útil para escrever sua própria ferramenta de migração. Uma versão compilada também está disponível.

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 (máquina virtual) do Azure na mesma região que o cache existente. Se o conjunto de dados for grande, escolha uma VM poderosa para reduzir o tempo de cópia.
  2. Crie uma nova instância do Cache do Azure para Redis e verifique se ela está vazia. A redis-copy ferramenta não substitui nenhuma chave existente no cache de destino.
  3. Use um aplicativo como redis-copy para automatizar a cópia dos dados do cache de origem para o cache de destino. O processo de cópia pode demorar um pouco dependendo do tamanho do conjunto de dados.