Compartilhar via


Persistência de dados no Cache do Azure para Redis

Importante

O Cache do Azure para Redis anunciou a linha do tempo de desativação para todos os 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:

Se ocorrer uma falha no cache do Cache do Azure para Redis, a perda de dados será possível quando os nós estiverem inativos. A persistência do Redis permite que você persista os dados armazenados na instância de cache. Se houver uma falha de hardware, a instância de cache será reidratada com os dados do arquivo de persistência quando ele voltar a ficar online.

Este artigo descreve a persistência do Redis e como configurar e gerenciar a persistência de dados nas suas instâncias do Cache do Azure para Redis das camadas Premium e Enterprise. O recurso de persistência de dados não está disponível nas camadas Básica ou Standard e está em versão prévia nas camadas Enterprise e Enterprise Flash.

A capacidade de persistir dados é uma forma importante de aumentar a durabilidade de uma instância de cache, porque ela armazena todos os dados de cache na memória. A persistência deve ser uma parte fundamental da sua estratégia de alta disponibilidade e recuperação de desastre do Azure para Redis.

Importante

A funcionalidade de persistência de dados fornece resiliência para falhas inesperadas de nó Redis. A persistência de dados não é um recurso PITR (recuperação pontual ou de backup de dados). Se os dados corrompidos forem gravados na instância do Redis, os dados corrompidos também serão persistidos. Para fazer backups da instância do Redis, use o recurso Exportação.

Importante

Se você estiver usando persistência na camada Premium, verifique se sua conta de armazenamento tem a exclusão reversível habilitada antes de usar o recurso de persistência de dados. Usar a persistência de dados com exclusão reversível causa altos custos de armazenamento. Para obter mais informações, veja Devo habilitar a exclusão temporária?

Escopo de disponibilidade

Camada Básico, Standard Premium Enterprise, Enterprise Flash
Disponível Não Sim Sim (versão prévia)

Tipos de persistência de dados do Redis

O Azure para Redis oferece dois tipos de persistência de dados: o formato RDB (banco de dados Redis) e o formato AOF (Arquivo Somente de Acréscimo).

  • A persistência de RDB persiste um instantâneo do cache em um formato binário e salva-o em uma conta do Armazenamento do Azure. Você configura a frequência de backup para determinar a frequência de persistência do instantâneo. Se ocorrer um evento catastrófico que desabilite o cache primário e de réplica, o cache será reconstruído automaticamente usando o instantâneo mais recente. Para obter mais informações, veja Vantagens do RDB e Desvantagens do RDB.

  • A persistência de AOF salva todas as operações de gravação em um log e salva o log uma vez por segundo em uma conta do Armazenamento do Azure. Se ocorrer um evento catastrófico que desative os caches primário e de réplica, o cache será reconstruído automaticamente usando as operações de gravação armazenadas. Para obter mais informações, veja Vantagens do AOF e Desvantagens do AOF.

Requisitos e limitações

  • A funcionalidade de persistência de dados fornece resiliência para falhas inesperadas de nó do Redis. A persistência de dados não é um backup de dados ou um recurso de PITR. Se os dados corrompidos forem gravados na instância do Redis, os dados corrompidos também serão persistidos. Para fazer backup da instância do Redis, use o recurso Exportação.

  • Os recursos de persistência do Cache do Azure para Redis destinam-se a restaurar dados automaticamente no mesmo cache após a perda de dados. Não é possível importar os arquivos de dados persistentes para um cache novo ou existente.

    • Para mover os dados entre caches, use os recursos Importar e Exportar dados.

    • Para gerar backups de dados que podem ser adicionados a um novo cache, use scripts automatizados com o PowerShell ou a CLI do Azure que exportem os dados periodicamente.

  • Não há suporte para persistência com caches que usam a replicação geográfica passiva ou a replicação geográfica ativa.

  • Na camada Premium, os dados são persistidos diretamente em uma conta do Armazenamento do Azure que você tem e gerencia.

  • A conta de armazenamento para a persistência de dados da camada Premium precisa estar na mesma região da instância de cache. No entanto, você pode usar uma conta de armazenamento em uma assinatura diferente para persistir os dados se você usar a identidade gerenciada para se conectar à conta de armazenamento.

  • É melhor desabilitar o recurso de exclusão temporária na conta de armazenamento que você usa para a persistência de dados da camada Premium. Usar a persistência de dados com exclusão reversível causa altos custos de armazenamento. Para obter mais informações, veja Preço e cobrança e Devo habilitar a exclusão temporária?

  • Os arquivos RDB são copiados em backup no armazenamento na forma de blobs de páginas. Não há suporte para blobs de páginas em contas de armazenamento com o HNS (Namespace Hierárquico) habilitado, como o Azure Data Lake Storage Gen2. Portanto, a persistência costuma falhar nessas contas de armazenamento.

  • Na camada Premium, não há suporte para a persistência de AOF com várias réplicas.

Criptografia de dados

Como a persistência do Redis cria dados inativos, é importante criptografar esses dados. As opções de criptografia variam de acordo com a camada do Azure para Redis usada.

Para a camada Premium, os dados são transmitidos diretamente da instância de cache para o Armazenamento do Azure quando a persistência é iniciada. O Armazenamento do Azure criptografa automaticamente os dados ao persisti-los, mas você pode usar vários métodos de criptografia, incluindo MMKs (chaves gerenciadas pela Microsoft), CMKs (chaves gerenciadas pelo cliente) e chaves fornecidas pelo cliente. Para obter mais informações, veja Criptografia do Armazenamento do Azure para dados inativos e Chaves gerenciadas pelo cliente para a criptografia do Armazenamento do Azure.

Configurar a persistência de dados

Você pode usar o portal do Azure, os modelos do ARM (Azure Resource Manager), o PowerShell ou a CLI do Azure para criar e configurar a persistência de dados para caches do Azure para Redis da camada Premium ou Enterprise.

Pré-requisitos

  • Para criar e adicionar persistência aos caches do Azure para Redis, você precisa ter acesso de gravação e permissões para criar caches da camada Premium ou Enterprise em uma assinatura do Azure.
  • Para caches da camada Premium, você precisa de uma conta do Armazenamento do Azure na mesma região do cache para armazenar os dados de cache. Se você usar uma identidade gerenciada como o método de autenticação, use uma conta de armazenamento em uma assinatura diferente do cache.
  • Para os procedimentos do Azure PowerShell, você precisa ter o Azure PowerShell instalado ou usar o Azure Cloud Shell com o ambiente do PowerShell no portal do Azure.
  • Para os procedimentos da CLI do Azure, você precisa ter a CLI do Azure instalada ou usar o Azure Cloud Shell com o ambiente Bash no portal do Azure.

Configurar a persistência de dados no portal do Azure

No portal do Azure, você pode configurar a persistência de dados ao criar a instância de cache da camada Premium ou Enterprise do Azure para Redis.

Observação

Você também pode adicionar a persistência a um cache criado anteriormente navegando até Persistência de dados em Configurações no menu de navegação esquerdo do cache.

  1. Para criar um cache Premium no portal do Azure, siga as instruções do Início Rápido: Criar um cache Redis de código aberto e selecione Premium para o SKU de Cache na guia Informações básicas.

    Captura de tela que mostra uma forma de criar um recurso do Cache do Azure para Redis.

  2. Ao preencher a guia Avançado, selecione persistência de RDB ou AOF para Arquivo de backup em Persistência de dados e defina as configurações relevantes.

    Captura de tela que mostra as configurações de persistência de dados RDB.

    • Para o RDB, defina estas configurações:

      Configuração Valor Descrição
      Método de Autenticação Selecione Identidade Gerenciada ou Chave de Armazenamento O uso da identidade gerenciada permite que você use uma conta de armazenamento em uma assinatura diferente do cache.
      Assinatura Selecione a assinatura que contém a identidade gerenciada. Esse item só será exibido se você escolher a autenticação de Identidade Gerenciada.
      Frequência de backup Selecione um intervalo de backup: 15 minutos, 30 minutos, 60 minutos, 6 horas, 12 horas ou 24 horas. Esse intervalo inicia a contagem regressiva depois que a operação de backup anterior for concluída com êxito. Quando o intervalo expirar, um novo backup será iniciado.
      Conta de armazenamento Selecione sua conta de armazenamento. A conta de armazenamento deve estar na mesma região que o cache. Uma conta de armazenamento Premium é recomendada porque tem uma taxa de transferência mais alta.
      Chave de Armazenamento Selecione a chave primária ou a chave secundária a ser usada. Esse item só será exibido se você escolher a autenticação de Chave de Armazenamento. Se a chave de armazenamento para a sua conta de armazenamento de persistência for regenerada, você precisará reconfigurar a chave no menu suspenso Chave de Armazenamento.
    • Para o AOF, defina estas configurações:

      Configuração Valor Descrição
      Método de Autenticação Selecione Identidade Gerenciada ou Chave de Armazenamento O uso da identidade gerenciada permite que você use uma conta de armazenamento em uma assinatura diferente do cache.
      Assinatura Selecione a assinatura que contém a identidade gerenciada. Esse item só será exibido se você escolher a autenticação de Identidade Gerenciada.
      Primeira conta de armazenamento Selecione sua conta de armazenamento. A conta de armazenamento deve estar na mesma região que o cache. Uma conta de armazenamento Premium é recomendada porque tem uma taxa de transferência mais alta.
      Primeira chave de armazenamento Selecione a chave primária ou a chave secundária a ser usada. Esse item só será exibido se você escolher a autenticação de Chave de Armazenamento. Se a chave de armazenamento for regenerada, você precisará reconfigurar a chave na lista suspensa Chave de Armazenamento.
      Segunda conta de armazenamento Opcionalmente, selecione uma conta de armazenamento secundária. Se você configurar uma conta de armazenamento secundária, as gravações no cache de réplica serão mantidas nessa segunda conta de armazenamento.
      Segunda chave de armazenamento Escolha a chave primária ou a chave secundária a ser usada. Esse item só será exibido se você escolher a autenticação de Chave de Armazenamento. Se a chave de armazenamento for regenerada, você precisará reconfigurar a chave.
  3. Preencha todas as guias e conclua a criação do cache seguindo o restante das instruções no Início Rápido: Criar um cache Redis de código aberto.

Com a persistência de RDB, o primeiro backup é iniciado após decorrido o intervalo de frequência de backup.

Com a persistência de AOF, as operações de gravação no cache são salvas na conta de armazenamento ou nas contas nomeadas. Se houver uma falha catastrófica que coloque os caches primário e de réplica offline, o log do AOF armazenado será usado para recompilar o cache.

Configurar a persistência de dados usando o Azure PowerShell

Você pode usar o Azure PowerShell para configurar a persistência de dados ao criar um Cache do Azure para Redis Premium ou da camada Enterprise ou para adicionar a persistência a um cache criado anteriormente.

Você pode usar o comando New-AzRedisCache para criar um cache da camada Premium do Azure para Redis que usa a persistência de dados.

Para atualizar os caches existentes para usar a persistência de dados, execute o comando Set-AzRedisCache. Para obter instruções, veja Adicionar a persistência a um cache existente.

Configurar a persistência de dados usando a CLI do Azure

Você pode usar a CLI do Azure para configurar a persistência de dados ao criar um Cache do Azure para Redis da camada Premium ou Enterprise ou para adicionar a persistência a um cache criado anteriormente.

Você pode usar o comando az redis create para criar um cache da camada Premium que usa a persistência de dados. Por exemplo:

az redis create --location westus2 --name MyRedisCache --resource-group MyResourceGroup --sku Premium --vm-size p1 --redis-configuration @"config_rdb.json"

Para atualizar um cache existente, use o comando az redis update. Por exemplo:

az redis update --name MyRedisCache --resource-group MyResourceGroup --set "redisConfiguration.rdb-storage-connection-string"="BlobEndpoint=https//..." "redisConfiguration.rdb-backup-enabled"="true" "redisConfiguration.rdb-backup-frequency"="15" "redisConfiguration.rdb-backup-max-snapshot-count"="1"

Perguntas frequentes sobre persistência

Esta seção contém respostas para perguntas frequentes sobre a persistência do Cache do Azure para Redis.

Persistência de RDB

Persistência de AOF

Posso habilitar a persistência em um cache criado anteriormente?

Sim, você pode configurar a persistência ao criar o cache e em caches Premium, Enterprise ou Enterprise Flash existentes.

Posso habilitar a persistência de AOF e RDB ao mesmo tempo?

Não, você pode habilitar o RDB ou o AOF, mas não os dois ao mesmo tempo.

Como a persistência funciona com a replicação geográfica?

A persistência de dados não funciona com a replicação geográfica habilitada.

Qual modelo de persistência eu devo escolher?

A persistência de AOF faz a gravação em um log uma vez por segundo, enquanto a persistência de RDB salva os backups com base no intervalo de backup configurado. A persistência de RDB tem menos efeito sobre a taxa de transferência e o desempenho do que a persistência de AOF.

Escolha a persistência de AOF se o seu objetivo principal for minimizar a perda de dados e você conseguir lidar com uma taxa de transferência menor para o cache. Escolha a persistência de RDB se você quiser manter a taxa de transferência ideal no cache, mas ainda quiser um mecanismo para recuperação de dados.

Para obter mais informações, veja Vantagens do RDB, Desvantagens do RDB, Vantagens do AOF e Desvantagens do AOF.

A persistência AOF afeta a taxa de transferência, latência ou desempenho de meu cache?

A persistência de AOF afeta a taxa de transferência. Como o AOF é executado no processo primário e de réplica, você vê uma carga de servidor e da CPU maior para um cache com a persistência de AOF do que para um cache idêntico sem a persistência de AOF. O AOF oferece a melhor consistência com os dados na memória porque cada gravação e exclusão é persistida com apenas alguns segundos de atraso. A desvantagem é que o AOF é mais intensiva em computação.

Desde que a CPU e a Carga do Servidor sejam inferiores a 90%, há uma penalidade na taxa de transferência, mas o cache funciona normalmente. Acima de 90% de CPU e carga do servidor, a penalidade de taxa de transferência pode ficar maior e a latência de todos os comandos processados pelo cache aumenta. A latência aumenta porque a persistência AOF é executada no processo primário e réplica, aumentando a carga no nó em uso e colocando persistência no caminho crítico dos dados.

O que acontecerá se eu tiver escalado para um tamanho diferente e um backup que foi feito antes da operação de escala for restaurado?

Posso usar a mesma conta de armazenamento para persistência em dois caches diferentes?

Não, você precisa usar contas de armazenamento diferentes. Cada cache deve ter sua própria conta de armazenamento para configurar para persistência.

Importante

Use também contas de armazenamento separadas para persistência e execução de operações de exportação periódicas em um cache.

Receberei uma cobrança pelo armazenamento que está sendo usado na persistência de dados?

  • Para caches Premium, você recebe uma cobrança pelo armazenamento usado de acordo com o modelo de preços da conta de armazenamento.
  • Para caches Enterprise e Enterprise Flash, o armazenamento em disco gerenciado é incluído no preço e não gera custos extras.

Com que frequência a persistência de RDB e AOF é escrita em meus blobs e devo habilitar a exclusão temporária?

A persistência de RDB e AOF pode fazer gravações nos seus blobs de armazenamento com as seguintes frequências: a cada hora, intervalos de minutos ou a cada segundo. A exclusão temporária pode se tornar rapidamente cara com os tamanhos de dados típicos de um cache que também executa operações de gravação a cada segundo. A habilitação da exclusão temporária em uma conta de armazenamento também significa que o Cache do Azure para Redis não pode minimizar os custos de armazenamento excluindo os dados de backup antigos.

É melhor evitar habilitar a exclusão temporária em contas de armazenamento que você usa para a persistência de dados da camada Premium do Azure para Redis. Para obter mais informações sobre custos de exclusão temporária, consulte Preço e cobrança.

Posso alterar a frequência de backup de RDB depois de criar o cache?

Sim, você pode alterar a frequência de backup para a persistência de RDB usando o portal do Azure, a CLI do Azure ou o Azure PowerShell.

Por que quando eu tenho uma frequência de backup de RDB de 60 minutos há mais de 60 minutos entre os backups?

O intervalo de frequência de backup de persistência do RDB não é iniciado até que o processo de backup anterior seja concluído com êxito. Se a frequência de backup for de 60 minutos e usar um processo de backup de 15 minutos para a conclusão, o próximo backup só será iniciado após 75 minutos decorridos da hora de início do backup anterior.

O que acontece com os backups de RDB antigos quando um backup novo é realizado?

Todos os backups da persistência de RDB, exceto pelo mais recente, serão excluídos automaticamente. Essa exclusão pode não acontecer imediatamente, mas os backups mais antigos não são persistidos por tempo indeterminado. Se você estiver usando a camada Premium para persistência e a exclusão temporária estiver ativada para sua conta de armazenamento, os backups continuarão localizados no estado de exclusão temporária.

Quando devo usar uma segunda conta de armazenamento?

Use uma segunda conta de armazenamento para a persistência de AOF quando você espera ter mais operações SET do que as normais no cache. O uso da conta de armazenamento secundária ajuda a garantir que o cache não atinja os limites de largura de banda de armazenamento. Essa opção só está disponível para caches da camada Premium.

Como posso remover a segunda conta de armazenamento?

Você pode remover a conta de armazenamento secundária de persistência de AOF definindo a segunda conta de armazenamento como a mesma que a primeira conta de armazenamento. Para alterar as configurações dos caches existentes, selecione Persistência de dados em Configurações no menu de navegação esquerdo da página de cache. Para desabilitar totalmente a persistência, selecione Desabilitado na página Persistência de dados.

O que é uma regravação e como ela afeta meu cache?

Quando um arquivo AOF ficar grande o suficiente, uma reescrita é automaticamente enfileirada no cache. A regeneração redimensiona o arquivo AOF com o conjunto mínimo de operações necessárias para criar o conjunto de dados atual.

Durante as regravações, você pode esperar atingir os limites de desempenho mais cedo, especialmente ao lidar com grandes conjuntos de dados. As reescritas ocorrem com menos frequência à medida que o arquivo AOF fica maior, mas demoram muito mais quando ocorrem.

O que devo esperar ao dimensionar um cache com o AOF habilitado?

Se o arquivo AOF no momento da escala for grande, prepare-se para uma operação de escala mais longa do que o habitual, porque ela recarrega o arquivo após a conclusão da escala. Veja também O que acontecerá se eu tiver escalado para um tamanho diferente e um backup que foi feito antes da operação de escala for restaurado?

Como os dados de AOF são organizados no armazenamento?

Quando você usa a camada Premium, os dados armazenados em arquivos AOF são divididos em vários blobs de páginas por fragmento. Por padrão, metade dos blobs são salvos na conta de armazenamento primário e metade é salva na conta de armazenamento secundária. Dividir os dados entre vários blobs de páginas e duas contas de armazenamento diferentes aprimora o desempenho.

Se a taxa de pico de gravações no cache não for alta, esse desempenho extra poderá não ser necessário. Nesse caso, a configuração da conta de armazenamento secundária pode ser removida e todos os arquivos AOF armazenados na única conta de armazenamento primária. A tabela a seguir exibe a quantidade total de blobs de páginas que cada tipo de preço usa.

Camada premium Blobs
P1 8 por fragmento
P2 16 por fragmento
P3 32 por fragmento
P4 40 por fragmento

Quando o clustering está habilitado, cada fragmento no cache tem um conjunto de blobs de páginas próprio, de acordo com a tabela anterior. Por exemplo, um cache P2 com três fragmentos distribui seu arquivo AOF em 48 blobs de páginas: Dezesseis blobs por fragmento, com três fragmentos.

Após uma regeneração, dois conjuntos de arquivos AOF existirão no armazenamento. As regravações ocorrem em segundo plano e acrescentam ao primeiro conjunto de arquivos. As operações SET enviadas para o cache durante a reescrita são acrescentadas ao segundo conjunto de arquivos.

Se houver uma falha durante uma reescrita, um backup será armazenado temporariamente. O backup é imediatamente excluído após a reescrita ser finalizada. Caso se a exclusão temporária estiver ativa para sua conta de armazenamento, a configuração da exclusão temporária será aplicada e os backups existentes continuarão no estado de exclusão temporária.

Ter exceções de firewall na conta de armazenamento afeta a persistência?

Sim. Para a persistência na camada Premium, o uso de configurações de firewall na conta de armazenamento pode impedir que o recurso de persistência funcione.

Você pode verificar se há erros na persistência de dados exibindo a métrica Erros. Essa métrica indica se o cache não pode persistir dados devido a restrições de firewall na conta de armazenamento ou outros problemas.

Para usar a persistência de dados com uma conta de armazenamento que tenha um firewall configurado, use a autenticação baseada em identidade gerenciada para se conectar ao armazenamento. O uso da identidade gerenciada adiciona a instância de cache à lista de serviços confiáveis, facilitando a aplicação de exceções de firewall. Se você autorizar a conta de armazenamento usando uma chave em vez de uma identidade gerenciada, ter exceções de firewall na conta de armazenamento costuma interromper o processo de persistência.

Posso ter a persistência de AOF habilitada se eu tiver mais de uma réplica?

Com a camada Premium, você não pode usar a persistência de AOF com várias réplicas. Nas camadas Enterprise e Enterprise Flash, a arquitetura de réplica é mais complicada, mas há suporte para a persistência de AOF quando caches Enterprise são usados em implantações com redundância de zona.

Como fazer para verificar se a exclusão temporária está habilitada na minha conta de armazenamento?

No portal do Azure, selecione a conta de armazenamento que o cache usa para persistência e selecione Proteção de dados em Gerenciamento de dados no menu de navegação esquerdo. Na página Proteção de dados, verifique se a opção Habilitar a exclusão temporária para blobs está habilitada. Para obter mais informações sobre a exclusão temporária nas contas de armazenamento do Azure, consulte Habilitar a exclusão temporária para blobs.

Posso usar uma conta de armazenamento em uma assinatura diferente daquela em que o cache está localizado?

Você só poderá escolher uma conta de armazenamento em uma assinatura diferente se estiver usando a identidade gerenciada como o método de autenticação da conta de armazenamento.

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