Partilhar via


Persistência de dados no Cache Redis do Azure

Importante

O Cache do Azure para Redis anunciou seu cronograma de desativação para todas as SKUs. Recomendamos mover as suas instâncias existentes do Azure Cache para Redis para Azure Managed Redis o mais rápido possível.

Para mais detalhes sobre a aposentadoria:

Se ocorrer uma falha de cache do Cache Redis do Azure, 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 será reidratada com os dados do ficheiro de persistência quando ela 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 Redis do Azure de nível Premium e Enterprise. O recurso de persistência de dados não está disponível nas camadas Basic ou Standard e está em visualização nas camadas Enterprise e Enterprise Flash.

A capacidade de persistir dados é uma maneira importante de aumentar a durabilidade de uma instância de cache, porque 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 desastres do Redis do Azure.

Importante

A funcionalidade de persistência de dados fornece resiliência para falhas inesperadas dos nodos Redis. A persistência de dados não é um recurso de backup de dados ou recuperação point-in-time (PITR). Se os dados corrompidos forem gravados na instância do Redis, os dados corrompidos também serão mantidos. Para fazer backups de sua instância do Redis, use o recurso Exportar .

Importante

Se você estiver usando persistência no nível Premium, verifique se sua conta de armazenamento tem a exclusão suave ativada antes de usar o recurso de persistência de dados. O uso da persistência de dados com exclusão suave causa altos custos de armazenamento. Para obter mais informações, consulte Devo habilitar a exclusão suave?

Âmbito da disponibilidade

Escalão de serviço Básico, Standard Premium Empresa, Enterprise Flash
Disponível Não Sim Sim (pré-visualização)

Tipos de persistência de dados Redis

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

  • A persistência 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 freqüência de backup para determinar com que frequência o snapshot deve persistir. Se ocorrer um evento catastrófico que desative 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 Vantagens e desvantagens do RDB.

  • A persistência 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 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, consulte Vantagens e desvantagens do AOF.

Requisitos e limitações

  • A funcionalidade de persistência de dados fornece resiliência para falhas inesperadas do nó Redis. A persistência de dados não é um backup de dados ou um recurso PITR. Se os dados corrompidos forem gravados na instância do Redis, os dados corrompidos também persistirão. Para fazer backup de sua 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. Não é possível importar arquivos de dados persistentes para um cache novo ou existente.

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

    • Para gerar backups de dados que podem 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 em 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 de nível 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 manter os dados se usar a identidade gerenciada para se conectar à conta de armazenamento.

  • É melhor desativar o recurso de exclusão suave na conta de armazenamento que você usa para persistência de dados de nível Premium. O uso da persistência de dados com exclusão suave causa altos custos de armazenamento. Para obter mais informações, consulte Preço e cobrança e Devo habilitar a exclusão suave?

  • Os arquivos RDB são salvaguardados para armazenamento na forma de blobs de página. Os blobs de página não são suportados em contas de armazenamento com o Namespace Hierárquico (HNS) 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 é suportada com várias réplicas.

Encriptação 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 fluem 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 mantê-los, mas você pode usar vários métodos de criptografia, incluindo chaves gerenciadas pela Microsoft (MMKs), chaves gerenciadas pelo cliente (CMKs) e chaves fornecidas pelo cliente. Para obter mais informações, consulte Criptografia do Armazenamento do Azure para dados em repouso 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 Azure Resource Manager (ARM), 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 de nível Premium ou Enterprise em uma assinatura do Azure.
  • Para caches de camada Premium, você precisa de uma conta de Armazenamento do Azure na mesma região do cache para armazenar os dados de cache. Se você usar a identidade gerenciada como 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 use o Azure Cloud Shell com o ambiente do PowerShell no portal do Azure.
  • Para os procedimentos da CLI do Azure, precisas de 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 sua instância de cache do Azure Redis Premium ou de nível Enterprise.

Nota

Você também pode adicionar 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 em Guia de início rápido: criar um cache Redis de código aberto e selecione Premium para o SKU de cache na guia Noções básicas .

    Captura de tela que mostra um formulário para criar um recurso do Cache do Azure para Redis.

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

    Captura de tela mostrando as configurações para 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 O uso da identidade gerenciada permite que você use uma conta de armazenamento em uma assinatura diferente do cache.
      Subscrição Selecione a subscrição que contém a sua identidade gerida. Esse item aparecerá 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. Este intervalo começa a contagem decrescente após a operação de backup anterior ser concluída com sucesso. Quando o intervalo expira, um novo backup é iniciado.
      Conta de Armazenamento Selecione a sua conta de armazenamento. A conta de armazenamento deve estar na mesma região do 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 aparece 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á reconfigurá-la na lista suspensa Chave de armazenamento .
    • Para AOF, defina estas configurações:

      Configuração Valor Descrição
      Método de Autenticação Selecionar 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.
      Subscrição Selecione a subscrição que contém a sua identidade gerida. Esse item aparecerá somente se você escolher a autenticação de Identidade Gerenciada .
      Primeira conta de armazenamento Selecione a sua conta de armazenamento. A conta de armazenamento deve estar na mesma região do 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 aparece somente se você escolher a autenticação da Chave de Armazenamento . Se a chave de armazenamento for regenerada, deve reconfigurar a chave no menu 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. Este item aparece somente se você escolher a autenticação da Chave de Armazenamento . Se a chave de armazenamento for regenerada, você deverá reconfigurá-la.
  3. Preencha todas as guias e termine a criação do cache seguindo as restantes instruções em Guia de Início Rápido: Criar Cache Redis de Código Aberto.

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

Com a persistência do AOF, as operações de escrita no cache são salvas na(s) conta(s) de armazenamento designada(s). Se houver uma falha catastrófica que derrube os caches primário e de réplica, o log AOF armazenado será usado para reconstruir 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 de camada Enterprise, ou para adicionar persistência a um cache criado anteriormente.

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

Para atualizar 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 de camada Premium ou Enterprise do Azure Redis Premium 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 RDB

Persistência de AOF

Posso ativar a persistência numa cache criada anteriormente?

Sim, você pode configurar a persistência na criação de cache e em caches Premium, Enterprise ou Enterprise Flash existentes.

Posso ativar a persistência do AOF e RDB ao mesmo tempo?

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

Como é que a persistência funciona com a georreplicação?

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

Que modelo de persistência devo escolher?

A persistência AOF grava num registo uma vez por segundo, enquanto a persistência RDB guarda cópias de segurança com base no intervalo de cópias de segurança configurado. A persistência RDB tem menos efeito sobre a taxa de transferência e o desempenho do que a persistência AOF.

Escolha a persistência AOF se seu objetivo principal for minimizar a perda de dados e você puder lidar com uma taxa de transferência mais baixa para seu cache. Escolha a persistência RDB se desejar 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 Vantagens do RDB, Desvantagens do RDB, Vantagens do AOF e Desvantagens do AOF.

A persistência do AOF afeta a taxa de transferência, a latência ou o desempenho da minha cache?

A persistência do AOF afeta a taxa de transferência. Como o AOF é executado no processo primário e de réplica, você vê uma CPU e uma carga de servidor mais altas para um cache com persistência AOF do que em um cache idêntico sem persistência AOF. O AOF oferece a melhor consistência com os dados em memória porque cada escrita e eliminação é persistida com apenas alguns segundos de atraso. A contrapartida é 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 funciona normalmente. Acima de 90% da CPU e da 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 do AOF é executada no processo primário e no processo da réplica, aumentando a carga no nó que está a ser utilizado e tornando a persistência uma parte crítica do caminho dos dados.

O que acontece se eu dimensionar para um tamanho diferente e for restaurado um backup que foi feito antes da operação de dimensionamento?

  • Se dimensionar para um tamanho superior, isso não terá qualquer efeito.
  • Se você dimensionou para um tamanho menor e tem uma configuração de bancos de dados personalizada maior do que o limite de bancos de dados para seu novo tamanho, os dados nesses bancos de dados não serão restaurados. Para obter mais informações, consulte Minha configuração de bancos de dados personalizados é afetada durante o dimensionamento?
  • Se você tiver dimensionado para um tamanho menor e não houver espaço suficiente no tamanho menor para armazenar todos os dados do último backup, as chaves serão removidas durante o processo de restauração. Normalmente, as chaves são removidas utilizando a política de expulsão allkeys-lru.

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 está incluído no preço e não incorre em cobranças extras.

Com que frequência a persistência RDB e AOF grava nos meus blobs e devo habilitar a eliminação suave?

A persistência RDB e AOF pode gravar nos seus blobs de armazenamento com frequência, podendo ser a cada hora, a cada poucos minutos ou a cada segundo. A exclusão suave rapidamente se torna 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 suave em uma conta de armazenamento também significa que o Redis do Azure não pode minimizar os custos de armazenamento excluindo os dados de backup antigos.

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

Posso alterar a frequência da cópia de segurança do RDB depois de criar a cache?

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

Porque é que existe um intervalo de mais de 60 minutos entre as cópias de segurança quando tenho uma frequência de cópia de segurança do RDB de 60 minutos?

O intervalo de frequência de backup de persistência 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 não será iniciado até 75 minutos após a hora de início do backup anterior.

O que acontece às cópias de segurança antigas do RDB quando é realizada uma nova cópia de segurança?

Todas as cópias de segurança da persistência do RDB, exceto a mais recente, são eliminadas automaticamente. Esta eliminação pode não ocorrer imediatamente, mas as cópias de segurança mais antigas não são mantidas indefinidamente. Se você estiver usando a camada Premium para persistência e a exclusão suave estiver ativada para sua conta de armazenamento, os backups existentes continuarão a residir no estado de exclusão suave.

Quando devo usar uma segunda conta de armazenamento?

Use uma segunda conta de armazenamento para persistência AOF quando você espera ter operações SET maiores do que o normal no cache. Usar a conta de armazenamento secundária ajuda a garantir que o cache não atinja os limites de largura de banda de armazenamento. Esta opção está disponível apenas para caches de nível Premium.

Como posso remover a segunda conta de armazenamento?

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

O que é uma reescrita e como afecta a minha cache?

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

Durante as reescritas, é expetável que os limites de desempenho sejam atingidos mais cedo, especialmente quando se lida com grandes conjuntos de dados. As regravações ocorrem com menos frequência à medida que o arquivo AOF se torna maior, mas levam uma quantidade significativa de tempo quando ocorrem.

O que devo esperar ao dimensionar uma cache com o AOF ativado?

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

Como meus dados AOF são organizados no armazenamento?

Quando se utiliza a camada Premium, os dados armazenados em arquivos AOF são divididos em vários blobs de página por partição. Por padrão, metade dos blobs são salvos na conta de armazenamento principal e metade é salva na conta de armazenamento secundário. A divisão dos dados em vários blobs de página 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 pode não ser necessário. Nesse caso, a configuração da conta de armazenamento secundário pode ser removida e todos os arquivos AOF armazenados na única conta de armazenamento principal. A tabela a seguir exibe quantos blobs de página totais cada camada de preço usa.

Escalão Premium Blocos
Pág. 1 8 por estilhaço
Pág. 2 16 por estilhaço
P3 32 por estilhaço
P4 40 por estilhaço

Quando o clustering está ativado, cada fragmento na cache tem o seu próprio conjunto de blobs de página, de acordo com a tabela acima. Por exemplo, uma cache P2 com três fragmentos distribui o seu arquivo AOF em 48 blocos de página: dezesseis blocos por fragmento, com três fragmentos.

Após uma regravação, dois conjuntos de arquivos AOF existem 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 regravação acrescentam ao segundo conjunto de arquivos.

Se houver uma falha durante uma regravação, um backup será armazenado temporariamente. O backup é prontamente excluído após a conclusão da regravação. Se a exclusão suave estiver ativada para sua conta de armazenamento, a configuração de exclusão suave será aplicada e os backups existentes continuarão no estado de exclusão suave.

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 nos dados persistentes exibindo a métrica Erros. Essa métrica indica se o cache não consegue 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 das exceções de firewall. Se você autorizar a conta de armazenamento usando uma chave em vez de identidade gerenciada, ter exceções de firewall na conta de armazenamento tende a interromper o processo de persistência.

Posso habilitar a persistência do AOF se tiver mais de uma réplica?

Com a camada Premium, não é possível usar a persistência AOF com várias réplicas. Nas camadas Enterprise e Enterprise Flash, a arquitetura de réplica é mais complicada, mas a persistência AOF é suportada quando os caches Enterprise são utilizados em implantações com redundância de zona.

Como posso verificar se a eliminação suave está ativada 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 em Gerenciamento de dados no menu de navegação à esquerda. Na página Proteção de dados, verifique se Ativar eliminação suave para blobs está habilitado. Para obter mais informações sobre exclusão suave em contas de armazenamento do Azure, consulte Habilitar exclusão suave 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.