Migrar para a Cache do Azure para Redis
Este artigo descreve várias abordagens para migrar um cache Redis existente em execução 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 muitos ambientes de computação. Exemplos comuns incluem:
- Local - Caches Redis em execução em data centers privados.
- VMs baseadas em nuvem - caches Redis em execução em VMs do Azure, AWS EC2 e assim por diante.
- Serviços de hospedagem - Serviços Redis gerenciados, como AWS ElastiCache.
Se você tiver esse cache, poderá movê-lo para o Cache Redis do Azure com o mínimo de interrupção ou tempo de inatividade.
Se você estiver procurando mover de uma região do Azure para outra, recomendamos que você veja nosso artigo Mover instâncias do Cache do Azure para Redis para regiões diferentes.
Opções de migração
Há diferentes maneiras de alternar de um cache para outro. Dependendo de onde o cache está e como seu aplicativo interage com ele, um método será mais útil do que os outros. Algumas das estratégias de migração frequentemente utilizadas são detalhadas abaixo.
Opção | Vantagens | Desvantagens |
---|---|---|
Criar um novo cache | Mais simples de implementar. | Necessidade de preencher novamente os dados para o novo cache, que pode não funcionar com muitos aplicativos. |
Exportar e importar dados via arquivo RDB | Compatível com qualquer cache Redis em geral. | Alguns dados podem ser perdidos se forem gravados no cache existente após a geração do arquivo RDB. |
Dados de gravação dupla em dois caches | Sem perda de dados ou tempo de inatividade. Operações ininterruptas do cache existente. Teste mais fácil do novo cache. | Precisa de dois caches por um longo período de tempo. |
Migrar dados programaticamente | Controle total sobre como os dados são movidos. | Requer código personalizado. |
Criar um novo Cache do Azure para Redis
Esta abordagem tecnicamente não é uma migração. Se a perda de dados não for uma preocupação, a maneira mais fácil de mover para o Cache Redis do Azure é 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á facilmente reconstruir o cache do zero.
As etapas gerais para implementar esta opção são:
Crie uma nova instância do Cache do Azure para Redis.
Opcionalmente, experimente o novo Azure Managed Redis (visualização).
Atualize seu aplicativo para usar a nova instância.
Exclua a instância antiga do Redis.
Exportar dados para um arquivo RDB e importá-los para o Cache Redis do Azure
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 versões do Redis e pode não manter a compatibilidade com versões anteriores. A versão Redis do cache do qual você está exportando deve ser igual ou menor do que a versão fornecida pelo Cache do Azure para Redis.
As etapas gerais para implementar esta opção são:
Crie uma nova instância do Cache do Azure para Redis na camada premium que seja do mesmo tamanho (ou maior que) o cache existente.
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 é chamado "dump.rdb" por padrão e estará localizado no caminho especificado no arquivo de configuração redis.conf .
Nota
Se você estiver migrando dados no Cache do Azure para Redis, consulte estas instruções sobre como exportar um arquivo RDB ou usar o cmdlet Exportar do PowerShell.
Copie o arquivo RDB para uma conta de armazenamento do Azure na região onde o novo cache está localizado. Você pode usar AzCopy para esta tarefa.
Importe o arquivo RDB para o novo cache usando estas instruções de importação ou o cmdlet de importação do PowerShell.
Atualize seu aplicativo para usar a nova instância de cache.
Gravar em dois caches Redis simultaneamente durante o período de migração
Em vez de mover dados diretamente entre caches, você pode usar seu aplicativo para gravar dados em um cache existente e em um novo que você está configurando. O aplicativo ainda lerá dados do cache existente inicialmente. Quando o novo cache tiver os dados necessários, você alterne o aplicativo para esse cache e aposente o antigo. Digamos, por exemplo, que 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. Você pode confiar nele com segurança a partir desse ponto sem se preocupar com a perda de dados.
As etapas gerais para implementar esta opção são:
Crie uma nova instância do Cache do Azure para Redis na camada premium que seja do mesmo tamanho (ou maior que) o cache existente.
Modifique o código do aplicativo para gravar nas instâncias nova e original.
Continue lendo os dados da instância original até que a nova instância seja suficientemente preenchida com dados.
Atualize o código do aplicativo para leitura e gravação somente a partir da nova instância.
Exclua a instância original.
Migrar programaticamente
Você pode criar um processo de migração personalizado lendo programaticamente 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 dados de uma instância do Cache Redis do Azure 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.
Nota
Esta ferramenta não é oficialmente suportada pela Microsoft.
As etapas gerais para implementar esta opção são:
Crie uma VM na região onde o cache existente está localizado. Se o conjunto de dados for grande, escolha uma VM relativamente poderosa para reduzir o tempo de cópia.
Crie uma nova instância do Cache do Azure para Redis.
Libere os dados do novo cache para garantir que ele esteja vazio. Esta etapa é necessária porque a própria ferramenta de cópia não substitui nenhuma chave existente no cache de destino.
Importante
Certifique-se de NÃO liberar do cache de origem.
Use um aplicativo como a ferramenta de código aberto acima para automatizar a cópia de dados do cache de origem para o destino. Lembre-se de que o processo de cópia pode demorar um pouco para ser concluído, dependendo do tamanho do seu conjunto de dados.
Próximos passos
Saiba mais sobre os recursos do Cache do Azure para Redis.