Compartilhar via


Persistência de dados no Cache do Azure para Redis

Se ocorrer uma falha de 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 em instâncias de cache. Se houver uma falha de hardware, a instância de cache reidratará 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 em suas instâncias de cache premium e de camada empresarial do Azure Redis. 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 maneira importante de aumentar a durabilidade de uma instância de cache, pois armazena todos os dados de cache na memória. A persistência deve ser uma parte fundamental da estratégia de alta disponibilidade e recuperação de desastre do Azure 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 Exportar .

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, consulte Devo habilitar a exclusão reversível?

Escopo de disponibilidade

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

Tipos de persistência de dados redis

O Azure Redis oferece dois tipos de persistência de dados, o formato rdb ( banco de dados Redis ) e o formato AOF ( Append-only File ).

  • A persistência de RDB persiste um instantâneo do cache em um formato binário e o salva em uma conta de Armazenamento do Azure. Você configura a frequência de backup para determinar com que frequência manter o instantâneo. Se ocorrer um evento catastrófico que desabilita 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, consulte as vantagens do RDB e as desvantagens do RDB.

  • A persistência do AOF salva cada operação de gravação em um log e salva o log uma vez por segundo em uma conta de Armazenamento do Azure. Se ocorrer um evento catastrófico que desabilita 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, consulte as vantagens do AOF e as desvantagens do AOF.

Requisitos e limitações

  • 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 de backup de dados ou PITR. Se os dados corrompidos forem gravados na instância do Redis, os dados corrompidos também persistirão. Para fazer backup da instância do Redis, use o recurso Exportar .

  • Os recursos de persistência do Cache do Azure para Redis destinam-se a restaurar dados automaticamente para o mesmo cache após a perda de dados. Você não pode importar arquivos de dados persistentes para um cache novo ou existente.

    • Para mover dados entre caches, use os recursos de dados de Importação e Exportação .

    • Para gerar backups de dados que possam ser adicionados a um novo cache, você pode usar scripts automatizados usando o PowerShell ou a CLI do Azure que exportam dados periodicamente.

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

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

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

  • É melhor desabilitar o recurso de exclusão reversível na conta de armazenamento que você usa para 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, consulte Preços e cobrança e devo habilitar a exclusão reversível?

  • Os arquivos RDB têm 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 tende a falhar nessas contas de armazenamento.

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

Criptografia de dados

Como a persistência do Redis cria dados em repouso, é importante criptografar esses dados. As opções de criptografia variam de acordo com a camada redis do Azure que você usa.

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 persistir, 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, consulte a criptografia do Armazenamento do Azure para dados inativos e chaves gerenciadas pelo cliente para 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 Redis do Azure de camada Premium ou Enterprise.

Pré-requisitos

  • Para criar e adicionar persistência aos caches redis do Azure, você precisa de acesso de gravação e permissões para criar caches premium ou de nível empresarial em uma assinatura do Azure.
  • Para caches de camada Premium, você precisa de uma conta de Armazenamento do Azure na mesma região que o cache para armazenar os dados de cache. Se você usar a identidade gerenciada como o método de autenticação, poderá usar uma conta de armazenamento em uma assinatura diferente do cache.
  • Para os procedimentos do Azure PowerShell, você precisa do 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 da 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 sua instância de cache do Azure Redis Premium ou de nível empresarial.

Observação

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

  1. Para criar um cache Premium no portal do Azure, siga as instruções no Início Rápido: Criar um cache Redis de software livre e selecione Premium para o SKU de Cache na guia Noçõ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 a persistência rdb ou AOF para o arquivo de backup em persistência de dados e defina as configurações relevantes.

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

    • Para RDB, defina estas configurações:

      Configuração Valor DESCRIÇÃO
      Método de Autenticação Selecionar Identidade Gerenciada ou Chave de Armazenamento Usar a identidade gerenciada permite que você use uma conta de armazenamento em uma assinatura diferente do cache.
      Assinatura Selecione a assinatura que contém sua identidade gerenciada. Este item será exibido somente 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 é decorrido, um novo backup é 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. Este item será exibido somente se você escolher a autenticação da Chave de Armazenamento . Se a chave de armazenamento da sua conta de armazenamento de persistência for regenerada, você deverá reconfigurar a chave na lista suspensa chave de armazenamento .
    • Para a AOF, defina estas configurações:

      Configuração Valor DESCRIÇÃO
      Método de Autenticação Selecionar Identidade Gerenciada ou Chave de Armazenamento Usar a identidade gerenciada permite que você use uma conta de armazenamento em uma assinatura diferente do cache.
      Assinatura Selecione a assinatura que contém sua identidade gerenciada. Este item será exibido somente 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. Este item será exibido somente se você escolher a autenticação da Chave de Armazenamento . Se a chave de armazenamento for regenerada, você deverá 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 nesta segunda conta de armazenamento.
      Segunda chave de armazenamento Escolha a chave primária ou a chave secundária a ser usada. Este item será exibido somente se você escolher a autenticação da Chave de Armazenamento . Se a chave de armazenamento for regenerada, você deverá reconfigurar a chave.
  3. Conclua 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 software livre.

Com a persistência do RDB, o primeiro backup é iniciado quando o intervalo de frequência de backup passa.

Com a persistência do 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 derrube os caches primário e de réplica, 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 Redis Premium ou da camada Enterprise ou para adicionar persistência a um cache criado anteriormente.

Você pode usar o comando New-AzRedisCache para criar um cache da camada Premium do Azure Redis que usa 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, consulte Adicionar 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 Redis Premium ou da camada Enterprise ou para adicionar persistência a um cache criado anteriormente.

Você pode usar o comando az redis create para criar um novo cache de camada Premium que usa 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 Redis do Azure.

Persistência de RDB

Persistência do AOF

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

Sim, você pode configurar a persistência na criação de 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 RDB ou AOF, mas não ambos 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 do AOF grava em um log uma vez por segundo, enquanto a persistência do RDB salva 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 do AOF.

Escolha a persistência do AOF se o objetivo principal é minimizar a perda de dados e você pode lidar com uma taxa de transferência menor para o cache. Escolha a persistência do 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, consulte as vantagens do RDB, as desvantagens do RDB, as vantagens do AOF e as 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 CPU maior para um cache com persistência do AOF do que em um cache idêntico sem persistência do 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 intensivo 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 opera 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 acontece se eu dimensionar para um tamanho diferente e um backup for restaurado que foi feito antes da operação de dimensionamento?

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

Não, você deve 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.

Sou cobrado pelo armazenamento que está sendo usado na persistência de dados?

  • Para caches Premium, você é cobrado 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 incorre em encargos 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 rdb e AOF pode gravar em seus blobs de armazenamento com a mesma frequência que a cada hora, a cada poucos 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. Habilitar a exclusão reversível em uma conta de armazenamento também significa que o Azure Redis não pode minimizar os custos de armazenamento excluindo os dados de backup antigos.

É melhor evitar a habilitação da exclusão reversível em contas de armazenamento que você usa para persistência de dados da camada Premium do Azure 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 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 um processo de backup levar 15 minutos para ser concluído, o próximo backup só será iniciado 75 minutos após a 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 reversível estiver ativada para sua conta de armazenamento, os backups existentes continuarão residindo no estado de exclusão reversível.

Quando devo usar uma segunda conta de armazenamento?

Use uma segunda conta de armazenamento para persistência de AOF quando você espera ter operações SET mais altas do que as usuais no cache. Usar a conta de armazenamento secundária ajuda a garantir que o cache não atinja limites de largura de banda de armazenamento. Essa opção está disponível apenas 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 à esquerda da página de cache. Para desabilitar totalmente a persistência, selecione Desabilitado na página de persistência de dados .

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

Quando um arquivo AOF se torna grande o suficiente, uma reescrita é enfileirada automaticamente 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 se torna maior, mas levam um tempo significativo quando ocorrem.

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

Se o arquivo AOF no momento do dimensionamento for grande, espere que a operação de escala demorou mais do que o normal, pois recarrega o arquivo após a conclusão do dimensionamento. Veja também o que acontece se eu dimensionar para um tamanho diferente e um backup for restaurado que foi feito antes da operação de dimensionamento?

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 melhora 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ário. A tabela a seguir exibe quantos blobs de página totais cada tipo de preço usa.

Camada premium Bolinhas
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 seu próprio conjunto de blobs de página, 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. Operações SET enviadas ao cache durante a reescrita acrescentam 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 conclusão da reescrita. 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 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 tende a 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 do 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 do AOF quando os caches empresariais 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 seu cache usa para persistência e selecione Proteção de dados no gerenciamento de dados no menu de navegação esquerdo. Na página Proteção de dados , verifique se Habilitar exclusão reversível para blobs está habilitado. 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 meu cache está localizado?

Você pode escolher uma conta de armazenamento em uma assinatura diferente somente se usar a identidade gerenciada como o método de autenticação da conta de armazenamento.

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