O que é o Cache do Azure para Redis?

O Cache do Azure para Redis fornece um armazenamento de dados na memória com base no software Redis. O Redis melhora o desempenho e a escalabilidade de um aplicativo que usa intensamente armazenamentos de dados de back-end. Ele é capaz de processar grandes volumes de solicitações de aplicativo mantendo os dados acessados com frequência na memória do servidor, que pode ser gravada e lida rapidamente. O Redis traz uma solução de armazenamento de dados crítica de baixa latência e alta taxa de transferência para aplicativos modernos.

O Cache do Azure para Redis oferece o OSS Redis (Redis de software livre) e um produto comercializado da Redis Inc. (Redis Enterprise) como serviço gerenciado. Ele fornece instâncias de servidor Redis seguras e dedicadas e compatibilidade total com a API do Redis. O serviço é operado pela Microsoft, hospedado no Azure e pode ser usado por qualquer aplicativo dentro ou fora do Azure.

O Cache do Azure para Redis pode ser usado como um cache de dados ou conteúdo distribuído, um repositório de sessão, um agente de mensagem e muito mais. Ele pode ser implantado de forma independente. Ou, pode ser implantado junto com outros serviços de banco de dados do Azure, como o SQL do Azure ou o Azure Cosmos DB.

Principais cenários

O Cache do Azure para Redis aprimora o desempenho do aplicativo dando suporte a padrões de arquitetura de aplicativo comuns. Alguns dos mais comuns incluem os seguintes padrões:

Padrão Descrição
Cache de dados Os bancos de dados geralmente são grandes demais para serem carregados diretamente em um cache. É comum usar o padrão cache-aside para carregar dados no cache, somente conforme necessário. Quando o sistema faz alterações nos dados, ele também pode atualizar o cache, que será distribuído a outros clientes. Além disso, o sistema pode definir uma expiração em dados ou usar uma política de remoção para disparar atualizações de dados para o cache.
Cache de conteúdo Muitas páginas da Web são geradas com base em modelos que usam conteúdo estático, como cabeçalhos, rodapés e faixas. Esses itens estáticos não devem ser alterados com frequência. O uso de um cache na memória fornece acesso rápido a conteúdo estático em comparação com armazenamentos de dados de back-end. Esse padrão reduz o tempo de processamento e a carga do servidor, permitindo que servidores Web sejam mais responsivos. Ele pode permitir que você reduza o número de servidores necessários para lidar com cargas. O Cache do Azure para Redis fornece o Provedor de Cache de Saída do Redis para dar suporte a esse padrão com o ASP.NET.
Repositório de sessão Esse padrão é geralmente usado com carrinhos de compras e outros dados de histórico do usuário que um aplicativo Web pode associar aos cookies do usuário. O armazenamento de muitas informações em um cookie pode ter um efeito negativo no desempenho conforme o tamanho do cookie aumenta e é passado e validado com cada solicitação. Uma solução típica usa o cookie como uma chave para consultar os dados em um banco de dados. Quando você usa um cache na memória, como o Cache do Azure para Redis, para associar as informações a um usuário é mais rápido que a interação com um banco de dados relacional completo.
Enfileiramento de mensagens e trabalhos Aplicativos geralmente adicionam tarefas a uma fila quando as operações associadas à solicitação levam tempo para serem executadas. As operações de execução mais longa são enfileiradas para serem processadas em sequência, muitas vezes por outro servidor. Esse método de adiamento do trabalho é chamado de enfileiramento de tarefas. O Cache do Azure para Redis fornece uma fila distribuída para habilitar esse padrão em seu aplicativo.
Transações distribuídas Às vezes, os aplicativos exigem uma série de comandos em relação a um armazenamento de dados de back-end para serem executados como uma única operação atômica. Todos os comandos devem ter êxito ou ser revertidos para o estado inicial. O Cache do Azure para Redis dá suporte à execução de um lote de comandos como uma única transação.

Versão do Redis

O Cache do Azure para Redis dá suporte ao software livre do Redis versão 4.0.x e 6.0.x. Tomamos a decisão de ignorar o Redis 5.0 para oferecer a você a última versão. Anteriormente, o Cache do Azure para Redis mantinha uma única versão do Redis. No futuro, você pode escolher entre uma atualização de versão principal mais recente e, pelo menos, uma versão estável mais antiga. Você pode escolher a versão que funciona melhor para seu aplicativo.

Camadas de serviço

O Cache do Azure para Redis está disponível nas camadas:

Camada Descrição
Basic Um cache do software livre do Redis em execução em uma VM. Esta camada não tem nenhum contrato de nível de serviço (SLA) e é ideal para o desenvolvimento/teste e cargas de trabalho não críticas.
Standard Um cache do software livre do Redis em execução em duas VMs em uma configuração replicada.
Premium Caches do software livre do Redis de alto desempenho. Essa camada oferece maior taxa de transferência, latência mais baixa, melhor disponibilidade e mais recursos. Os caches Premium são implantados em VMs mais avançadas em comparação com as VMs para caches Básico ou Standard.
Enterprise Caches de alto desempenho da plataforma de software Redis Enterprise da Redis Inc. Essa camada dá suporte a módulos do Redis incluindo RediSearch, RedisBloom, RedisJSON e RedisTimeSeries. Além disso, ela oferece uma disponibilidade ainda maior do que a camada Premium.
Enterprise Flash Caches grandes econômicos da plataforma de software Redis Enterprise da Redis Inc. Esta camada estende o armazenamento de dados do Redis para a memória não volátil, que é mais em conta que DRAM em uma VM. Ele reduz o custo de memória geral por GB.

Comparação de recursos

O Preço do Cache do Azure para Redis fornece uma comparação detalhada de cada camada. A seguinte tabela ajuda a descrever alguns dos recursos compatíveis por camada:

Descrição do recurso Basic Standard Premium Enterprise Enterprise Flash
Contrato de nível de serviço (SLA) -
Criptografia de dados em trânsito
Isolamento da rede
Dimensionamento Visualização Versão Prévia
Clustering de OSS - -
Persistência de dados - - Visualização Visualização
Redundância de zona - - Disponível Disponível Disponível
Replicação geográfica - - ✔ (Passivo) ✔ (Ativo) ✔ (Ativo)
Registros de auditoria da conexão - - ✔ (Baseado em votações) ✔ (baseado em eventos) ✔ (baseado em eventos)
Módulos do Redis - - - Visualização
Importar/exportar - -
Reboot - -
Atualizar o canal e agendar atualizações - -

Observação

A camada Enterprise Flash atualmente suporta apenas o módulo RediSearch (em versão prévia) e o módulo RedisJSON.

Escolher a camada correta

Considere as seguintes opções ao escolher uma camada do Cache do Azure para Redis:

  • Memória: as camadas Básico e Standard oferecem 250 MB a 53 GB; a camada Premium, 6 GB a 1,2 TB; a camada Enterprise, 4 GB a 2 TB e a camada Enterprise Flash, 300 GB a 4,5 TB. Para criar um cache de camada Premium maior que 120 GB, você pode usar o clustering do software livre do Redis. Para obter mais informações, consulte Preço do Cache do Azure para Redis.
  • Desempenho: os caches nas camadas Premium e Enterprise são implantados no hardware que tem processadores mais rápidos e que oferece um melhor desempenho quando comparado com as camadas Básica ou Standard. Normalmente, a camada Enterprise tem o melhor desempenho para a maioria das cargas de trabalho, especialmente com instâncias de cache maiores. Para obter mais informações, confira Teste de desempenho.
  • Núcleo dedicado para o servidor do Redis: todos os caches, exceto o C0 executam vCPUs dedicadas. As camadas Básico, Standard e Premium executam o Redis de código aberto, que, por design, usa apenas um thread para o processamento de comandos. Nessas camadas, ter mais vCPUs costuma aprimorar o desempenho da taxa de transferência, porque o Cache do Azure para Redis usa outras vCPUs para processamento de E/S ou para processos do sistema operacional. No entanto, a adição de mais vCPUs por instância talvez não produza aumentos de desempenho lineares. A escala horizontal costuma aumentar o desempenho mais do que a escala vertical nessas camadas. Os caches das camadas Enterprise e Enterprise Flash são executados no Redis Enterprise, que pode utilizar várias vCPUs por instância, o que também pode aumentar consideravelmente o desempenho em relação a outras camadas. Nas camadas Enterprise e Enterprise Flash, recomendamos usar a escala vertical antes da escala horizontal. Para obter mais informações, confira Fragmentação e utilização da CPU.
  • Desempenho de rede: se você tiver uma carga de trabalho que exija uma alta taxa de transferência, a camada Premium ou Enterprise oferece mais largura de banda quando comparada com as camadas Básica ou Standard. Também dentro de cada camada, caches de tamanhos maiores têm mais largura de banda, devido à VM subjacente que hospeda o cache. Os limites de largura de banda mais altos ajudam a evitar a saturação de rede que causa tempos limite no seu aplicativo. Para obter mais informações, confira Teste de desempenho.
  • Número máximo de conexões de cliente: as camadas Premium e Enterprise oferecem o número máximo de clientes que podem se conectar ao Redis, ao oferecer números maiores de conexões para caches de tamanhos maiores. O clustering aumenta a quantidade total de largura de banda de rede disponível para um cache clusterizado.
  • Alta disponibilidade: o Cache do Azure para Redis fornece várias opções de alta disponibilidade. Ele garante que um cache Standard, Premium ou Enterprise esteja disponível conforme nosso SLA. o SLA abrange apenas a conectividade com os pontos de extremidade do cache. O SLA não abrange a proteção contra perda de dados. Recomendamos usar o recurso de persistência de dados do Redis nas camadas Premium e Enterprise para aumentar a resiliência contra a perda de dados.
  • Persistência de dados: as camadas Premium e Enterprise permitem que você mantenha os dados do cache em uma conta do Armazenamento do Azure e em um Disco Gerenciado respectivamente. Problemas de infraestrutura subjacente podem resultar em uma possível perda de dados. Recomendamos usar o recurso de persistência de dados do Redis nessas camadas para aumentar a resiliência contra a perda de dados. O Cache do Azure para Redis oferece as opções RDB e AOF (versão prévia). A persistência de dados pode ser habilitada por meio do portal do Azure e da CLI. Para a camada Premium, confira Como configurar a persistência para um Cache do Azure para Redis Premium.
  • Isolamento de rede: as implantações de VNet (Rede Virtual) e do Link Privado do Azure fornecem segurança e isolamento de tráfego aprimorados para seu Cache do Azure para Redis. A VNet permite restringir ainda mais o acesso por meio de políticas de controle de acesso à rede. Para obter mais informações, confira o Cache do Azure para Redis com o Link Privado do Azure e Como configurar o suporte da Rede Virtual para um Cache do Azure para Redis Premium.
  • Módulos do Redis: as camadas Enterprise dão suporte a RediSearch, RedisBloom, RedisTimeSeries e RedisJSON. Esses módulos adicionam novos tipos de dados e funcionalidades ao Redis.

Você pode dimensionar o cache da camada Básica até a Premium após a criação dele. No momento, não há suporte para a redução para uma camada inferior. Para obter instruções passo a passo sobre colocação em escala, consulte Como Escalar o Cache do Azure para Redis e Como escalar - camadas do tipo Básico, Padrão e Premium.

Considerações especiais para as camadas Enterprise

As camadas Enterprise dependem do Redis Enterprise, uma variante comercial do Redis da Redis Inc. Os clientes podem obter e pagar uma licença desse software por meio de uma oferta do Azure Marketplace. O Cache do Azure para Redis gerencia a aquisição da licença para que você não precise fazer isso separadamente. Para fazer compras no Azure Marketplace, você precisa ter os seguintes pré-requisitos:

  • Sua assinatura do Azure tem um meio de pagamento válido. Não há suporte para créditos Azure ou assinaturas do MSDN gratuitas.
  • Sua organização permite compras no Azure Marketplace.
  • Se você usa um marketplace privado, ele precisa conter a oferta Enterprise da Redis Inc.

Importante

O Cache do Azure para Redis Enterprise requer Load Balancers de rede Standard que são cobrados separadamente das instâncias de cache propriamente ditas. Atualmente, esses encargos são absorvidos pelo Cache do Azure para Redis e não passados aos clientes. Isso pode mudar no futuro. Para saber mais, confira Preços do Load Balancer.

Se um cache Enterprise estiver configurado para várias Zonas de Disponibilidade, os encargos de transferência de dados serão absorvidos pelo cache do Azure para Redis e não serão passados aos clientes. Isso pode mudar no futuro, em que a transferência de dados seria cobrada com as taxas de largura de banda de rede padrão

Além disso, a persistência de dados adiciona Managed Disks. O uso desses recursos é gratuito durante a versão prévia pública da persistência de dados Enterprise. Isso poderá mudar quando o recurso entrar em disponibilidade geral.

Disponibilidade por região

O Cache do Azure para Redis está se expandindo continuamente para novas regiões. Para verificar a disponibilidade em sua região, consulte Produtos disponíveis por região.