

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como ElastiCache funciona
<a name="WhatIs.corecomponents"></a>

Aqui você encontra uma visão geral dos principais componentes de uma ElastiCache implantação.

## Cache e mecanismos de cache
<a name="WhatIs.corecomponents.cache"></a>

Um cache é um armazenamento de dados na memória que é possível usar para armazenar dados em cache. Normalmente, seu aplicativo armazena em cache os dados acessados com frequência em um cache para otimizar os tempos de resposta. ElastiCache oferece duas opções de implantação: caches sem servidor e clusters baseados em nós. Consulte [Escolha entre opções de implantação](WhatIs.deployment.md). 

**nota**  
A Amazon ElastiCache trabalha com os mecanismos OSS Valkey, Memcached e Redis. Se não souber qual mecanismo deseja usar, consulte [Comparação de clusters Valkey, Memcached e Redis OSS baseados em nós](SelectEngine.md) neste guia.

**Topics**
+ [Como ElastiCache funciona](#WhatIs.HowELCworks)
+ [Dimensões de preço](#WhatIs.ELCpricing)
+ [ElastiCache backups](#WhatIs.corecomponents.backups-redis)

### Como ElastiCache funciona
<a name="WhatIs.HowELCworks"></a>

**ElastiCache Sem servidor**

ElastiCache O Serverless permite que você crie um cache sem se preocupar com planejamento de capacidade, gerenciamento de hardware ou design de cluster. Basta fornecer um nome para o cache, e você receberá um único endpoint que pode ser configurado no cliente do Valkey, Memcached, Redis OSS para começar a acessar o cache.

**nota**  
ElastiCache O Serverless executa Valkey, Memcached ou Redis OSS no modo de cluster e só é compatível com clientes que oferecem suporte a TLS. 

**Benefícios principais**


+ **Sem planejamento de capacidade:** o ElastiCache Serverless elimina a necessidade de planejar a capacidade. ElastiCache O Serverless monitora continuamente a utilização de memória, computação e largura de banda de rede do seu cache e escala vertical e horizontalmente. Ele permite que um nó de cache cresça e, paralelamente, inicia uma operação de aumento de escala horizontal para garantir que o cache possa escalar para atender aos requisitos da aplicação em todos os momentos. 
+ **Pay-per-use:** Com o ElastiCache Serverless, você paga pelos dados armazenados e pela computação utilizada pela sua carga de trabalho no cache. Consulte [Dimensões de preço](#WhatIs.ELCpricing).
+ **Alta disponibilidade:** o ElastiCache Serverless replica automaticamente seus dados em várias zonas de disponibilidade (AZ) para obter alta disponibilidade. Ele monitora automaticamente os nós de cache subjacentes e os substitui em caso de falhas. Ele oferece um SLA de disponibilidade de 99,99% para cada cache. 
+ **Atualizações automáticas de software:** o ElastiCache Serverless atualiza automaticamente seu cache para a última versão secundária e corrige o software sem nenhum impacto na disponibilidade do seu aplicativo. Quando uma nova versão principal estiver disponível, você ElastiCache receberá uma notificação. 
+ **Segurança**: o ElastiCache Sem Servidor sempre criptografa os dados em trânsito e em repouso. É possível usar uma chave gerenciada pelo serviço ou usar a própria chave gerenciada pelo cliente para criptografar dados em repouso. 

O diagrama a seguir ilustra como o ElastiCache Serverless funciona.

![\[Um diagrama da operação de cache ElastiCache sem servidor, das zonas de disponibilidade até a VPC do cliente e, em seguida, até a VPC do serviço.\]](http://docs.aws.amazon.com/pt_br/AmazonElastiCache/latest/dg/images/ELC-serverless-works1.png)


Quando você cria um novo cache sem servidor, ElastiCache cria um Endpoint de Nuvem Privada Virtual (VPC) nas sub-redes de sua escolha em sua VPC. A aplicação pode se conectar ao cache por meio desses endpoints da VPC. 

Com o ElastiCache Serverless, você recebe um único endpoint DNS ao qual seu aplicativo se conecta. Quando você solicita uma nova conexão com o endpoint, o ElastiCache Serverless manipula todas as conexões de cache por meio de uma camada de proxy. A camada proxy ajuda a reduzir a configuração do cliente complexa, porque o cliente não precisa redescobrir a topologia do cluster em caso de alterações no cluster subjacente. A camada proxy é um conjunto de nós proxy que processam conexões usando um balanceador de carga da rede. 

Quando a aplicação cria uma nova conexão de cache, a solicitação é enviada para um nó proxy pelo balanceador de carga da rede. Quando a aplicação executa comandos de cache, o nó proxy conectado à aplicação executa as solicitações em um nó de cache no cache. A camada proxy abstrai a topologia do cluster e os nós do cliente. Isso permite balancear ElastiCache a carga de forma inteligente, escalar e adicionar novos nós de cache, substituir os nós de cache quando eles falham e atualizar o software nos nós de cache, tudo sem afetar a disponibilidade do seu aplicativo ou a necessidade de redefinir as conexões. 

**Clusters baseados em nós**

Você pode criar um ElastiCache cluster baseado em nós escolhendo uma família de nós de cache, tamanho e número de nós para seu cluster. Criar um cluster baseado em nós proporciona um controle mais refinado e permite a você escolher o número de fragmentos no cache e o número de nós (primário e réplica) em cada fragmento. Você pode optar por operar o Valkey ou Redis OSS em modo de cluster criando um cluster com vários fragmentos ou em modo sem cluster com um único fragmento. 

**Benefícios principais**
+ **Crie um cluster baseado em nós:** com ElastiCache, você pode criar um cluster baseado em nós e escolher onde deseja colocar seus nós de cache. Por exemplo, se tiver uma aplicação que deseja trocar a alta disponibilidade pela baixa latência, você poderá optar por implantar os nós de cache em uma única AZ. Como alternativa, você pode criar um cluster baseado em nós com nós em vários AZs para obter alta disponibilidade. 
+ **Controle refinado**: ao criar um cluster baseado em nós, você tem mais controle sobre o ajuste fino das configurações no cache. Por exemplo, é possível usar [Parâmetros do Valkey e do Redis OSS](ParameterGroups.Engine.md#ParameterGroups.Redis) or [Parâmetros específicos do Memcached](ParameterGroups.Engine.md#ParameterGroups.Memcached) para configurar o mecanismo de cache.
+ **Escalar vertical e horizontalmente**: você pode optar por escalar manualmente o cluster aumentando ou diminuindo o tamanho do nó de cache quando necessário. Você também pode escalar horizontalmente ao adicionar novos fragmentos ou adicionar mais réplicas aos fragmentos. Também é possível usar o recurso ajuste de escala automático para configurar o escalonamento com base em uma programação ou o escalonamento com base em métricas como uso de CPU e memória no cache. 

O diagrama a seguir ilustra como os clusters baseados em nós ElastiCache funcionam.

![\[Um diagrama da operação de clusters ElastiCache baseados em nós, das zonas de disponibilidade até a VPC do cliente e, em seguida, até ElastiCache os nós de cache gerenciados.\]](http://docs.aws.amazon.com/pt_br/AmazonElastiCache/latest/dg/images/ELC-serverless-works2.png)


### Dimensões de preço
<a name="WhatIs.ELCpricing"></a>

Você pode implantar ElastiCache em duas opções de implantação. Ao implantar o ElastiCache Serverless, você paga pelo uso dos dados armazenados em GB/hora e pela computação em ElastiCache unidades de processamento (ECPU). Ao criar um cluster baseado em nós, você paga por hora de uso do nó de cache. Consulte detalhes de preço [aqui](https://aws.amazon.com/elasticache/pricing/).

**Armazenamento de dados**

Você paga pelos dados armazenados no ElastiCache Serverless cobrados em gigabytes por hora (GB-hrs). ElastiCache O Serverless monitora continuamente os dados armazenados em seu cache, fazendo amostragens várias vezes por minuto, e calcula uma média horária para determinar o uso do armazenamento de dados do cache em GB-h. Cada cache ElastiCache sem servidor é medido para um mínimo de 1 GB de dados armazenados.

**ElastiCache Unidades de processamento (ECPUs)**

Você paga pelas solicitações que seu aplicativo executa no ElastiCache Serverless in ElastiCache Processing Units (ECPUs), uma unidade que inclui o tempo de vCPU e os dados transferidos. 
+ Leituras e gravações simples exigem um ECPU para cada quilobyte (KB) de dados transferidos. Por exemplo, um comando GET que transfere até 1 KB de dados consome uma ECPU. Uma solicitação SET que transfere 3,2 KB de dados consumirá 3,2 ECPUs.
+ Com o Valkey e o Redis OSS, os comandos que consomem mais tempo de vCPU e transferem mais dados consomem ECPUs com base na maior das duas dimensões. Por exemplo, se seu aplicativo usa o comando HMGET, consome 3 vezes mais tempo de vCPU do que um SET/GET comando simples e transfere 3,2 KB de dados, ele consumirá 3,2 ECPU. Como alternativa, se ele transferir apenas 2 KB de dados, consumirá 3 ECPUs. 
+ Com o Valkey e o Redis OSS, os comandos que exigem tempo adicional de vCPU consumirão proporcionalmente mais. ECPUs Por exemplo, se seu aplicativo usa o comando Valkey ou Redis OSS [HMGET e consome 3 vezes o tempo da vCPU como um comando](https://valkey.io/commands/hmget/) SET/GET simples, ele consumirá 3. ECPUs 
+ Com o Memcached, os comandos que operam em vários itens consumirão proporcionalmente mais. ECPUs Por exemplo, se seu aplicativo executar um multiget em 3 itens, ele consumirá 3 ECPUs.
+ Com o Memcached, os comandos que operam em mais itens e transferem mais dados consomem ECPUs com base na maior das duas dimensões. Por exemplo, se a aplicação usar o comando GET, recuperar três itens e transferir 3,2 KB de dados, ela consumirá 3,2 ECPU. Como alternativa, se ele transferir apenas 2 KB de dados, consumirá 3 ECPUs.

ElastiCache O Serverless emite uma nova métrica chamada `ElastiCacheProcessingUnits` que ajuda você a entender o que é ECPUs consumido pela sua carga de trabalho. 

**Horas de nó**

Você pode criar um cluster baseado em nós escolhendo a família de EC2 nós, o tamanho, o número de nós e o posicionamento nas zonas de disponibilidade. Ao criar um cluster baseado em nós, você paga por hora para cada nó de cache. 

### ElastiCache backups
<a name="WhatIs.corecomponents.backups-redis"></a>

Um *backup* é uma point-in-time cópia de um cache sem servidor ou de um cluster baseado em nós Valkey ou Redis OSS. ElastiCache permite que você faça um backup de seus dados a qualquer momento ou configure backups automáticos. Backups podem ser usados para restaurar um cache existente ou para propagar um novo cache. Backups consistem em todos os dados de um cache mais alguns metadados. Para obter mais informações, consulte [Snapshots e restauração](backups.md).

# Escolha entre opções de implantação
<a name="WhatIs.deployment"></a>

A Amazon ElastiCache tem duas opções de implantação:
+ Armazenamento em cache sem servidor
+ Clusters baseados em nós

Para obter uma lista de comandos aceitos para ambos, consulte [Comandos Valkey, Memcached e Redis OSS compatíveis e restritos](SupportedCommands.md).

**Armazenamento em cache sem servidor**

O Amazon ElastiCache Serverless simplifica a criação de cache e escala instantaneamente para dar suporte aos aplicativos mais exigentes dos clientes. Com o ElastiCache Serverless, você pode criar um cache altamente disponível e escalável em menos de um minuto, eliminando a necessidade de provisionar, planejar e gerenciar a capacidade do cluster. ElastiCache O Serverless armazena automaticamente os dados de forma redundante em três zonas de disponibilidade e fornece um Acordo de Nível de Serviço (SLA) de 99,99% de disponibilidade. Os backups de clusters Valkey baseados em nós ou de Redis OSS podem ser restaurados em uma configuração com tecnologia sem servidor.

**Clusters baseados em nós**

Se você precisar de um controle refinado sobre seu cluster OSS Valkey, Memcached ou Redis, você pode criar um cluster baseado em nós com. ElastiCache Você escolhe o tipo de nó, o número de nós e o posicionamento dos nós nas zonas de AWS disponibilidade do seu cluster. Como ElastiCache é um serviço totalmente gerenciado, ele ajuda a gerenciar o provisionamento de hardware, o monitoramento, as substituições de nós e a aplicação de patches de software para seu cluster. Clusters baseados em nós podem ser projetados para fornecer um SLA de disponibilidade de até 99,99%. Backups de caches Valkey ou Redis OSS de tecnologia sem servidor podem ser restaurados em um cluster baseado em nós.

**Escolha entre opções de implantação**

Escolha o armazenamento sem servidor se:
+ Você está criando um cache para workloads novas ou difíceis de prever.
+ Você tem tráfego de aplicativos imprevisível.
+ Você deseja a maneira mais fácil de começar a usar um cache.

Crie seu próprio cluster baseado em nós se:
+ Você já está executando o ElastiCache Serverless e deseja um controle mais refinado sobre o tipo de nó que executa o Valkey, o Memcached ou o Redis OSS, o número de nós e o posicionamento desses nós. 
+ Você espera que o tráfego do seu aplicativo seja relativamente previsível e deseja um controle refinado sobre desempenho, disponibilidade e custo. 
+ Você pode prever os requisitos de capacidade para controlar os custos.

## Comparar cache com tecnologia sem servidor e clusters baseados em nós
<a name="WhatIs.deployment.comparing"></a>


| Recurso | Armazenamento em cache sem servidor | Clusters baseados em nós | 
| --- | --- | --- | 
|  Configuração de cache  |  Crie um cache com apenas um nome em menos de um minuto  |  Fornece controle refinado sobre o design do cluster. O usuário pode escolher o tipo de nó, o número de nós e o posicionamento nas zonas AWS de disponibilidade  | 
|   ElastiCache Versão suportada  |  Valkey 7.2 e superior, Redis OSS versão 7.1 e superior, Memcached 1.6.21 e superior  |  Valkey 7.2 e superior, Redis OSS versão 4.0 e superior, Memcached 1.4 e superior  | 
|  Modo Cluster (Valkey e Redis OSS)  |  Opera motores somente em `cluster mode enabled`. Os clientes devem oferecer suporte `cluster mode enabled` para se conectar ao ElastiCache Serverless.  |  Pode ser configurado para operar no modo cluster habilitado ou desabilitado.  | 
|  Escalabilidade  |  Escala automaticamente os mecanismos vertical e horizontalmente sem qualquer gerenciamento de capacidade.  |  Fornece controle sobre o escalonamento, ao mesmo tempo em que exige monitoramento para garantir que a capacidade atual esteja atendendo adequadamente à demanda. Para Valkey e Redis OSS, você pode escolher escalar verticalmente aumentando ou diminuindo o tamanho do nó de cache quando necessário. Você também pode escalar horizontalmente ao adicionar novos fragmentos ou adicionar mais réplicas aos fragmentos. Esse recurso não está disponível para o Memcached. Com o atributo de ajuste de escala automático, você também pode configurar o dimensionamento com base em uma programação ou em métricas como uso de CPU e memória no cache.  | 
|  Conexão do cliente  |  Os clientes se conectam a um único endpoint. Isso permite que a topologia do nó de cache subjacente (escalonamento, substituições e atualizações) mude sem desconectar o cliente.  |  Os clientes se conectam a cada nó de cache individual. Se um nó for substituído, o cliente redescobre a topologia do cluster e restabelece as conexões.  | 
|  Configure  |  Nenhuma configuração refinada disponível. Os clientes podem configurar configurações básicas, incluindo sub-redes que podem acessar o cache, se os backups automáticos estão ativados ou desativados e limites máximos de uso do cache.   |  Clusters baseados em nós oferecem opções de configuração refinadas. Os clientes podem usar grupos de parâmetros para um controle refinado. Para uma tabela desses valores de parâmetro por tipo de nó, consulte [Parâmetros específicos do mecanismo](ParameterGroups.Engine.md).  | 
|  multi-AZ  |  Os dados são replicados de forma assíncrona em várias Zonas de Disponibilidade para maior disponibilidade e melhor latência de leitura.  |  Fornece a opção de criar o cluster em uma única zona de disponibilidade ou em várias zonas de disponibilidade (AZs). Ao usar o Valkey ou o Redis OSS, são fornecidos clusters Multi-AZ com dados replicados de forma assíncrona em várias zonas de disponibilidade para maior disponibilidade e melhor latência de leitura.  | 
|  Criptografia em repouso  |  Sempre habilitado. Os clientes podem usar uma chave Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente AWS KMS.  |  Opção para habilitar ou desabilitar a criptografia em repouso. Quando ativada, os clientes podem usar uma chave Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente AWS KMS.   | 
|  Criptografia em trânsito (TLS)  |  Sempre habilitado. Os clientes devem oferecer suporte à conectividade TLS.   |  Opção para habilitar ou desabilitar.  | 
|  Backups  |  Aceita backups automáticos e manuais de caches sem impacto no desempenho. Os backups do Valkey e do Redis OSS são compatíveis entre si e podem ser restaurados em um cache ElastiCache sem servidor ou em um cluster baseado em nós.  |  Aceita backups automáticos e manuais para Valkey e Redis OSS. Os clusters podem ter algum impacto sobre o desempenho, dependendo da memória reservada disponível. Para obter mais informações, consulte [Gerenciamento de memória reservada para Valkey e Redis OSS](redis-memory-management.md). Os backups do Valkey e do Redis OSS são compatíveis entre si e podem ser restaurados em um cache ElastiCache sem servidor ou em um cluster baseado em nós.  | 
|  Monitoramento   |  Support métricas em nível de cache, incluindo taxa de acerto do cache, taxa de erro do cache, tamanho dos dados e ECPUs consumo. ElastiCache O Serverless envia eventos usando EventBridge quando eventos significativos acontecem em seu cache. Você pode escolher monitorar, ingerir, transformar e agir em ElastiCache eventos usando a Amazon EventBridge. Para obter mais informações, consulte [Eventos de cache sem servidor](serverless-metrics-events-redis.md#serverless-events).  |   ElastiCache Os clusters baseados em nós emitem métricas em cada nível de nó, incluindo métricas em nível de host e métricas de cache. Clusters baseados em nós emitem notificações de SNS para eventos significativos. Consulte [Métricas para o Memcached](CacheMetrics.Memcached.md) e [Métricas para o Valkey e Redis OSS](CacheMetrics.Redis.md).  | 
|  Disponibilidade  |  [Acordo de Serviço (SLA)](https://aws.amazon.com/elasticache/sla/) com 99,99% de disponibilidade  |  Clusters baseados em nós podem ser projetados para atingir um [Acordo de Serviço (SLA)](https://aws.amazon.com/elasticache/sla/) de disponibilidade de até 99,99%, dependendo da configuração.  | 
|  Atualizações e correções de software  |  Atualiza automaticamente o software de cache para a versão secundária e de patch mais recente, sem impacto no aplicativo. Os clientes recebem uma notificação sobre atualizações de versões principais e podem atualizar para a versão principal mais recente quando quiserem.  |  Os clusters baseados em nós oferecem autoatendimento habilitado pelo cliente para atualizações de versões secundárias e de patches, bem como atualizações de versões principais. As atualizações gerenciadas são aplicadas automaticamente durante as janelas de manutenção definidas pelo cliente. Os clientes também podem optar por aplicar um upgrade de versão secundária ou de patch sob demanda.   | 
|  Global Data Store   |  Não compatível   |  Suporta Global Data Store, que permite replicação entre regiões com gravações de região única e leituras multirregionais  | 
|  Hierarquização de dados  |  Não compatível  |  Clusters que são criados usando nós da família r6gd têm seus dados classificados em níveis entre a memória e o armazenamento local em unidades de estado sólido (Solid state Drives, SSD). O armazenamento de dados em camadas fornece uma opção de preço-desempenho para cargas de trabalho Valkey e Redis OSS, utilizando unidades de estado sólido (SSDs) de baixo custo em cada nó do cluster, além de armazenar dados na memória.  | 
|  Modelo de definição de preços  |  Pay-per-use, com base em dados armazenados em GB-hora e solicitações em Unidades de ElastiCache Processamento (ECPU). Consulte detalhes de preço [aqui](https://aws.amazon.com/elasticache/pricing/).  |  Pay-per-hour, com base no uso do nó de cache. Consulte detalhes de preço [aqui](https://aws.amazon.com/elasticache/pricing/).  | 

Tópicos relacionados:
+ [Criação e gerenciamento de um cluster baseado em nós ElastiCacheCriação e gerenciamento de um cluster baseado em nós ElastiCache ](designing-elasticache-cluster.md)

# ElastiCache Recursos da Amazon para usuários iniciantes
<a name="WhatIs.FirstTimeUser"></a>

Recomendamos que os usuários iniciantes comecem lendo as seguintes seções e as consultem conforme necessário.
+ **Destaques e preços do serviço** — A [página de detalhes do](https://aws.amazon.com/elasticache/) produto fornece uma visão geral do produto ElastiCache, destaques do serviço e preços.
+ **ElastiCache vídeos** — A [Vídeos do ElastiCache](Tutorials.md#tutorial-videos) seção tem vídeos que apresentam você à Amazon ElastiCache. Os vídeos abordam casos de uso comuns ElastiCache e demonstram como usar ElastiCache para reduzir a latência e melhorar a produtividade de seus aplicativos.
+ **Conceitos básicos** a seção [Começando com a Amazon ElastiCache](GettingStarted.md) inclui informações sobre a criação de um cache. Ele também inclui como autorizar o acesso ao cache, conectar-se a um nó de cache e excluir o cache.
+ **Desempenho em escala** — O ElastiCache whitepaper [Performance at Scale with Amazon](https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf) aborda estratégias de armazenamento em cache que ajudam seu aplicativo a ter um bom desempenho em grande escala.

Depois de completar as seções anteriores, leia estas seções:
+ [Escolha do tamanho do nó](CacheNodes.SelectSize.md)

  Você quer que seus nós sejam grandes o suficiente para acomodar todos os dados que deseja armazenar em cache. Ao mesmo tempo, você não quer pagar mais cache do que precisa. Você pode usar esse tópico para ajudar a selecionar o melhor tamanho do nó.
+ [Práticas recomendadas e estratégias de armazenamento em cache do ElastiCache](BestPractices.md)

  Identifique e aborde problemas que possam afetar a eficiência do seu cluster.

Se quiser usar o AWS Command Line Interface(AWS CLI), você pode usar esses documentos para ajudá-lo a começar:
+ [AWS Command Line Interface documentação](https://docs.aws.amazon.com/cli/)

  Esta seção fornece informações sobre como baixar o AWS CLI, fazer com que AWS CLI ele funcione em seu sistema e forneça suas AWS credenciais.
+ [AWS CLI documentação para ElastiCache](https://docs.aws.amazon.com/cli/latest/reference/elasticache/index.html)

  Esse documento separado abrange todos os ElastiCache comandos AWS CLI for, incluindo sintaxe e exemplos.

Você pode escrever programas de aplicativos para usar a ElastiCache API com uma variedade de linguagens de programação populares. Aqui estão alguns recursos:
+ [Ferramentas para a Amazon Web Services](https://aws.amazon.com/tools/)

  A Amazon Web Services fornece vários kits de desenvolvimento de software (SDKs) com suporte para ElastiCache. Você pode programar para ElastiCache usar Java, .NET, PHP, Ruby e outras linguagens. Isso SDKs pode simplificar muito o desenvolvimento de seu aplicativo formatando suas solicitações ElastiCache, analisando respostas e fornecendo lógica de repetição e tratamento de erros. 
+ [Uso da API do ElastiCache](ProgrammingGuide.md)

  Se você não quiser usar o AWS SDKs, você pode interagir ElastiCache diretamente usando a API de consulta. É possível encontrar dicas de solução de problemas e informações sobre como criar e autenticar solicitações e lidar com respostas nesta seção. 
+ [Referência de ElastiCache API da Amazon](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/)

  Esse documento separado abrange todas as operações da ElastiCache API, incluindo sintaxe e exemplos.

# Regiões e zonas de disponibilidade da AWS
<a name="WhatIs.AZs"></a>

Os recursos de computação em nuvem da Amazon estão alojados em instalações de datacenter altamente disponíveis em diferentes áreas do mundo (por exemplo, América do Norte, Europa ou Ásia). Cada localização de datacenter é chamada de uma região da AWS.

Cada região da AWS contém vários locais distintos, chamados de zonas de disponibilidade, ou AZs. Cada zona de disponibilidade é projetada para ser isolada de falhas em outras zonas de disponibilidade. Cada uma é projetada para fornecer conectividade de rede de baixa latência e custo reduzido para outras zonas de disponibilidade na mesma região da AWS. Ao iniciar as instâncias em Zonas de disponibilidade separadas, você pode proteger seus aplicativos de falha de um único local. Para obter mais informações, consulte [Escolha de regiões e zonas de disponibilidade](RegionsAndAZs.md).

Você pode criar seu cluster em várias zonas de disponibilidade, uma opção chamada de implantação multi-AZ. Quando você escolhe essa opção, a Amazon automaticamente provisiona e mantém uma instância de nó secundário em espera em uma zona de disponibilidade diferente. A instância do seu nó primário é sincronicamente replicada ao longo das zonas de disponibilidade para a instância secundária. Essa abordagem ajuda a fornecer redundância de dados e suporte a failover, eliminar congelamentos de E/S e minimizar picos de latência durante backups do sistema. Para obter mais informações, consulte [Minimização do tempo de inatividade no ElastiCache para Valkey e Redis OSS com o Multi-AZ](AutoFailover.md).

# Casos de ElastiCache uso comuns e como ElastiCache ajudar
<a name="elasticache-use-cases"></a>

Seja para fornecer as últimas notícias, um placar dos 10 primeiros colocados, um catálogo de produtos ou a venda de ingressos para um evento, a velocidade é o nome do jogo. O sucesso do seu site e negócios é significativamente afetado pela rapidez com que você fornece o conteúdo. 

Em "[Para usuários da Web impacientes, um piscar de olhos é um tempo muito longo para se esperar](http://www.nytimes.com/2012/03/01/technology/impatient-web-users-flee-slow-loading-sites.html?pagewanted=all&_r=0)", os usuários podem registrar uma diferença de 250 milissegundos (1/4 de segundo) entre sites concorrentes. Os usuários tendem a deixar o site mais lento de lado em função do site mais rápido. Os testes feitos na Amazon, citados em [How Webpage Load Time Is Related to Visitor Loss](http://pearanalytics.com/blog/2009/how-webpage-load-time-related-to-visitor-loss/) (Como o tempo de carregamento da página está relacionado à perda de visitantes), revelaram que, para cada aumento de 100ms (1/10 segundo) no tempo de carregamento, as vendas diminuiriam 1%. 

Se alguém quiser dados, você poderá enviar esses dados com muito mais rapidez se eles estiverem armazenados em cache. Isso é verdade, seja para uma página da Web ou um relatório que desencadeie decisões empresariais. Sua empresa pode se dar ao luxo de não armazenar em cache suas páginas da Web, de modo a entregá-las com a menor latência possível?

Talvez seja intuitivamente óbvio que você queira armazenar em cache seus itens mais solicitados. Mas, por que não armazenar em cache seus itens menos solicitados? Mesmo a consulta de banco de dados ou a chamada de API remota mais otimizada será visivelmente mais lenta do que a recuperação de uma chave simples de um cache de memória. *Visivelmente mais lento* tende a direcionar os clientes para outros lugares.

Os exemplos a seguir ilustram algumas das maneiras pelas quais o uso ElastiCache pode melhorar o desempenho geral do seu aplicativo.

**Topics**
+ [Armazenamento de dados na memória](#elasticache-use-cases-data-store)
+ [Placares de jogos](#elasticache-for-redis-use-cases-gaming)
+ [Mensagens (publicação/assinatura)](#elasticache-for-redis-use-cases-messaging)
+ [Dados de recomendação (hashes)](#elasticache-for-redis-use-cases-recommendations)
+ [Cache semântico para aplicativos de IA generativa](#elasticache-for-redis-use-cases-semantic-caching)
+ [ElastiCache Depoimentos de clientes](#elasticache-use-cases-testimonials)

## Armazenamento de dados na memória
<a name="elasticache-use-cases-data-store"></a>

O objetivo principal de um armazenamento de chaves/valores na memória é fornecer acesso ultrarrápido (latência inferior a milissegundos) e de baixo custo a cópias de dados. A maioria dos armazenamentos de dados possui áreas de dados que são frequentemente acessadas, mas raramente atualizadas. Além disso, as consultas a um banco de dados sempre serão mais lentas e mais caras do que localizar uma chave em um cache de pares de chave/valor. Algumas consultas de banco de dados são especialmente caras para executar. Um exemplo é consultas que envolvem junções em várias tabelas ou consultas com cálculos intensos. Ao armazenar em cache esses resultados de consulta, você paga o preço da consulta apenas uma vez. Em seguida, você pode recuperar rapidamente os dados várias vezes sem ter que voltar a executar a consulta.

### O que devo armazenar em cache?
<a name="elasticache-use-cases-data-store-what-to-cache"></a>

Ao decidir quais dados devem ser armazenados em cache, considere estes fatores:

**Velocidade e despesas**: é sempre mais lento e mais caro obter dados de um banco de dados do que de um cache. Algumas consultas de banco de dados são inerentemente mais lentas e mais caras do que outras. Por exemplo, consultas que executem junções em várias tabelas são muito mais lentas e mais caras do que simples consultas de tabela única. Se os dados de interesse exigirem uma consulta lenta e cara de obter, eles são candidatos para armazenamento em cache. Se a obtenção dos dados exigir uma consulta relativamente rápida e simples, os dados ainda podem ser candidatos para armazenamento em cache, dependendo de outros fatores.

**Dados e padrão de acesso**: determinar o que armazenar em cache também envolve a compreensão dos dados e seus padrões de acesso. Por exemplo, não faz sentido armazenar dados em cache que mudem rapidamente ou que sejam raramente acessados. Para que o armazenamento em cache ofereça um benefício real, os dados devem ser relativamente estáticos e frequentemente acessados. Um exemplo é um perfil pessoal em um site de mídia social. Por outro lado, você não vai querer armazenar dados em cache se esse armazenamento não oferecer vantagem de velocidade ou custo. Por exemplo, não faz sentido armazenar em cache páginas da Web que retornem resultados de uma pesquisa, pois tais consultas e resultados são quase sempre exclusivos.

**Desatualização**: por definição, os dados armazenados em cache são dados obsoletos. Mesmo que, em certas circunstâncias, não sejam obsoletos, eles sempre devem ser considerados e tratados como tal. Para dizer se os seus dados são candidatos para armazenamento em cache, determine a tolerância da sua aplicação a dados obsoletos. 

Seu aplicativo pode ser capaz de tolerar dados obsoletos em um contexto, mas não em outro. Por exemplo, suponha que o seu site informe um preço de ações negociadas publicamente. Seus clientes podem aceitar alguma desatualização com um aviso de isenção de responsabilidade de que os preços podem ser *n* minutos atrasados. Mas, se você informar o preço das ações a um corretor que faça uma venda ou compra, você desejará dados em tempo real.

Considere armazenar seus dados em cache se o seguinte for verdadeiro:
+ Seus dados são lentos ou caros para obtenção em comparação à recuperação do cache.
+ Os usuários acessam seus dados com frequência.
+ Seus dados permanecem relativamente iguais, ou se eles mudam rapidamente, a prontidão não é um problema grande.

Para obter mais informações, consulte [Estratégias de armazenamento em cache para Memcached](Strategies.md).

## Placares de jogos
<a name="elasticache-for-redis-use-cases-gaming"></a>

Com conjuntos classificados do Valkey ou Redis OSS, você pode mover a complexidade computacional de placares da sua aplicação para o seu cluster.

Placares, como os 10 primeiros líderes em um jogo, são computacionalmente complexos. Isso é especialmente verdadeiro quando há um grande número de jogadores concorrentes e continuamente mudando de pontuação. Os conjuntos classificados do Valkey e do Redis OSS garantem a exclusividade e a ordenação dos elementos. Com os conjuntos classificados, a cada vez que um novo elemento for adicionado ao conjunto classificado ele é reorganizado em tempo real. Em seguida, eles são adicionados ao conjunto em sua ordem numérica correta. 

No diagrama a seguir, você pode ver como funciona uma tabela ElastiCache de classificação de jogos.

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonElastiCache/latest/dg/images/ElastiCache-Redis-Gaming.png)


**Example Placa do Valkey ou Redis OSS**  
Neste exemplo, quatro jogadores e suas pontuações são inseridos em uma lista classificada usando `ZADD`. O comando `ZREVRANGEBYSCORE` lista os jogadores por pontuação, de alta a baixa. Em seguida, `ZADD` é usado para atualizar a pontuação de June, substituindo a entrada existente. Finalmente, `ZREVRANGEBYSCORE` lista os jogadores por pontuação, de alta a baixa. A lista mostra que June subiu no ranking.  

```
ZADD leaderboard 132 Robert
ZADD leaderboard 231 Sandra
ZADD leaderboard 32 June
ZADD leaderboard 381 Adam
			
ZREVRANGEBYSCORE leaderboard +inf -inf
1) Adam
2) Sandra
3) Robert
4) June

ZADD leaderboard 232 June

ZREVRANGEBYSCORE leaderboard +inf -inf
1) Adam
2) June
3) Sandra
4) Robert
```
O seguinte comando informa June sobre sua classificação entre todos os jogadores. Como o ranking é baseado em zero, *ZREVRANK* retorna um 1 para June, que está na segunda posição.  

```
ZREVRANK leaderboard June 
1
```

Para obter mais informações, consulte a [documentação do Valkey](https://valkey.io/topics/sorted-sets/) sobre conjuntos classificados.

## Mensagens (publicação/assinatura)
<a name="elasticache-for-redis-use-cases-messaging"></a>

Ao enviar uma mensagem de e-mail, você a envia para um ou mais destinatários especificados. No paradigma de publicação/assinatura do Valkey e Redis OSS, você envia uma mensagem para um canal específico, sem saber quem a receberá. As pessoas que recebem a mensagem são aquelas que assinam o canal. Por exemplo, suponha que você assine o canal *news.sports.golf*. Você e todos os outros assinantes do canal *news.sports.golf* receberão todas as mensagens publicadas em *news.sports.golf*.

A funcionalidade de publicação/assinatura não tem relação com nenhum espaço de chaves. Portanto, ela não interferirá em nenhum nível. No diagrama a seguir, você pode encontrar uma ilustração de ElastiCache mensagens com Valkey e Redis OSS.

![\[\]](http://docs.aws.amazon.com/pt_br/AmazonElastiCache/latest/dg/images/ElastiCache-Redis-PubSub.png)


### Assinatura
<a name="elasticache-use-cases-messaging-subscribing"></a>

Para receber mensagens em um canal, é necessário assiná-lo. Você pode assinar um único canal, vários canais especificados ou todos os canais que corresponderem a um padrão. Para cancelar uma assinatura, você cancela o registro do canal especificado quando se inscreveu nele. Ou, se você se inscreveu usando correspondência de padrões, você cancela a assinatura usando o mesmo padrão usado anteriormente.

**Example - Assinatura de um único canal**  
Para assinar um único canal, use o comando SUBSCRIBE, especificando o canal que deseja assinar. No exemplo a seguir, um cliente assina o canal *news.sports.golf*.  

```
SUBSCRIBE news.sports.golf
```
Depois de um tempo, o cliente cancela a assinatura do canal usando o comando UNSUBSCRIBE, especificando o canal do qual cancelar a assinatura.  

```
UNSUBSCRIBE news.sports.golf
```

**Example - Assinaturas de vários canais especificados**  
Para assinar vários canais específicos, liste esses canais com o comando SUBSCRIBE. No exemplo a seguir, um cliente assina os canais *news.sports.golf*, *news.sports.soccer* e *news.sports.skiing*.  

```
SUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
```
Para cancelar uma assinatura de um canal específico, use o comando UNSUBSCRIBE e especifique o canal do qual cancelar a assinatura.  

```
UNSUBSCRIBE news.sports.golf
```
Para cancelar assinaturas em vários canais, use o comando UNSUBSCRIBE e especifique os canais dos quais cancelar a assinatura.  

```
UNSUBSCRIBE news.sports.golf news.sports.soccer
```
Para cancelar todas as assinaturas, use `UNSUBSCRIBE` e especifique cada canal. Ou use `UNSUBSCRIBE` e não especifique um canal.  

```
UNSUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
```
or  

```
UNSUBSCRIBE
```

**Example - Assinaturas usando a correspondência de padrões**  
Os clientes podem assinar todos os canais que correspondem a um padrão usando o comando PSUBSCRIBE.  
No exemplo a seguir, um cliente assina todos os canais de esportes. Você não lista todos os canais de esportes individualmente, como seria feito usando `SUBSCRIBE`. Em vez disso, com o comando `PSUBSCRIBE`, você usa a correspondência de padrões.  

```
PSUBSCRIBE news.sports.*
```

**Example Cancelar assinaturas**  
Para cancelar assinaturas desses canais, use o comando `PUNSUBSCRIBE`.  

```
PUNSUBSCRIBE news.sports.*
```
+ A string de canal enviada a um comando [P]SUBSCRIBE e aquela enviada ao comando [P]UNSUBSCRIBE devem corresponder. Você não pode `PSUBSCRIBE` em *news.\$1* e `PUNSUBSCRIBE` de *news.sports.\$1* ou `UNSUBSCRIBE` de *news.sports.golf*.
+ `PSUBSCRIBE`e não `PUNSUBSCRIBE` estão disponíveis para ElastiCache Serverless.

### Publicação
<a name="elasticache-for-redis-use-cases-messaging-publishing"></a>

Para enviar uma mensagem a todos os assinantes de um canal, use o comando `PUBLISH`, especificando o canal e a mensagem. O seguinte exemplo publica a mensagem, "It’s Saturday and sunny. I’m headed to the links." no canal *news.sports.golf*.

```
PUBLISH news.sports.golf "It's Saturday and sunny. I'm headed to the links."
```

Um cliente não pode publicar em um canal no qual esteja inscrito.

Para obter mais informações, consulte [Publicação/Assinatura](https://valkey.io/topics/pubsub) na documentação do Valkey.

## Dados de recomendação (hashes)
<a name="elasticache-for-redis-use-cases-recommendations"></a>

Usar INCR ou DECR no Valkey ou no Redis OSS simplifica a compilação de recomendações. Cada vez que um usuário "curte" um produto, você aumenta um contador de *item:productID:like*. Cada vez que um usuário "descurte" um produto, você aumenta um contador de *item:productID:dislike*. Usando hashes, você também pode manter uma lista de todos aqueles que curtiram ou não curtiram um produto.

**Example - Curtidas e descurtidas**  

```
INCR item:38923:likes
HSET item:38923:ratings Susan 1
INCR item:38923:dislikes
HSET item:38923:ratings Tommy -1
```

## Cache semântico para aplicativos de IA generativa
<a name="elasticache-for-redis-use-cases-semantic-caching"></a>

Operar aplicativos generativos de IA em grande escala pode ser um desafio devido ao custo e à latência associados às chamadas de inferência para grandes modelos de linguagem (). LLMs Você pode usar ElastiCache para armazenamento em cache semântico em aplicativos generativos de IA, permitindo reduzir o custo e a latência das chamadas de inferência do LLM. Com o cache semântico, é possível retornar uma resposta em cache usando a correspondência baseada em vetores para encontrar semelhanças entre os prompts atuais e anteriores. Se o prompt de um usuário for semanticamente parecido com um prompt anterior, uma resposta em cache será retornada em vez de fazer uma nova chamada de inferência do LLM, reduzindo o custo de aplicativos de IA generativa e fornecendo respostas mais rápidas que melhoram a experiência do usuário. Você pode controlar quais consultas são roteadas para o cache configurando limites de similaridade para prompts e aplicando filtros de tag ou metadados numéricos.

As atualizações de índice em tempo real em linha fornecidas pela pesquisa vetorial ElastiCache ajudam a garantir que o cache seja atualizado continuamente à medida que as solicitações do usuário e as respostas do LLM chegam. Essa indexação em tempo real é crucial para manter a atualização dos resultados em cache e das taxas de acerto de cache, especialmente para tráfego intenso. Além disso, ElastiCache simplifica as operações de armazenamento em cache semântico por meio de primitivas de cache maduras, como por chave TTLs, estratégias de despejo configuráveis, operações atômicas e suporte avançado de estrutura de dados e scripts.

**Memória para assistentes e atendentes de IA generativa**

Você pode usar ElastiCache para fornecer respostas mais personalizadas e sensíveis ao contexto implementando mecanismos de memória que revelam o histórico de conversas entre sessões. LLMs A memória conversacional permite que assistentes e atendentes de IA generativa retenham e usem interações anteriores para personalizar as respostas e melhorar a relevância. No entanto, simplesmente agregar todas as interações anteriores ao prompt é ineficaz, pois tokens extras irrelevantes aumentam o custo, degradam a qualidade da resposta e correm o risco de exceder a janela de contexto do LLM. Em vez disso, você pode usar a pesquisa vetorial para recuperar e fornecer somente os dados mais relevantes no contexto para cada invocação do LLM.

ElastiCache for Valkey fornece integrações com camadas de memória de código aberto, fornecendo conectores integrados para armazenar e recuperar memórias para aplicativos e agentes LLM. A pesquisa vetorial ElastiCache fornece atualizações rápidas de índices, mantendo a memória atualizada e tornando as novas memórias imediatamente pesquisáveis. A pesquisa vetorial de baixa latência agiliza as pesquisas de memória, permitindo que elas sejam implementadas no caminho online de cada solicitação, não apenas nas tarefas em segundo plano. Além da pesquisa vetorial, ElastiCache o Valkey também fornece primitivos de cache para estado da sessão, preferências do usuário e sinalizadores de recursos, fornecendo um único serviço para armazenar estados de sessão de curta duração e “memórias” de longo prazo em um armazenamento de dados. 

**Geração aumentada via recuperação (RAG)**

O RAG é o processo de LLMs fornecer up-to-date informações prontamente para melhorar a relevância das respostas. O RAG reduz as alucinações e melhora a precisão factual ao aterrar as saídas com fontes de dados do mundo real. Os aplicativos RAG usam a pesquisa vetorial para recuperar conteúdo semanticamente relevante de uma base de conhecimento. A pesquisa vetorial de baixa latência fornecida pelo a ElastiCache torna adequada para implementar RAG em cargas de trabalho que têm grandes conjuntos de dados com milhões de vetores ou mais. Além disso, o suporte para atualizações on-line de índices vetoriais ElastiCache é adequado para assistentes com fluxos de trabalho de upload que precisam garantir que todos os dados enviados sejam imediatamente pesquisáveis. O RAG em sistemas de IA agentes garante que os agentes tenham up-to-date informações para ações precisas. A pesquisa vetorial de baixa latência também é crucial para o RAG em sistemas de IA agêntica, onde uma única consulta pode acionar várias chamadas de LLM e acumular a latência da pesquisa vetorial subjacente. 

O diagrama a seguir ilustra um exemplo de arquitetura usada ElastiCache para implementar um cache semântico, mecanismos de memória e RAG para aprimorar um aplicativo de IA generativo em produção.

![\[Diagrama de uma pesquisa semântica realizada por um assistente de IA generativa.\]](http://docs.aws.amazon.com/pt_br/AmazonElastiCache/latest/dg/images/vector-search-gen-ai1.png)


**Pesquisa semântica**

A pesquisa vetorial recupera os dados mais relevantes de texto, fala, imagem ou vídeo com base na proximidade do significado ou dos atributos. Esse recurso habilita aplicações de machine learning que dependem da pesquisa por similaridade em diversas modalidades de dados, incluindo mecanismos de recomendação, detecção de anomalias, personalização e sistemas de gerenciamento de conhecimento. Os sistemas de recomendação usam representações vetoriais para capturar padrões complexos no comportamento do usuário e nas características do item, permitindo que eles sugiram o conteúdo mais relevante. A pesquisa vetorial ElastiCache é adequada para esses aplicativos por causa de suas atualizações quase em tempo real e baixa latência, permitindo comparações de similaridade que fornecem recomendações instantâneas e altamente relevantes com base nas interações ao vivo do usuário.

## ElastiCache Depoimentos de clientes
<a name="elasticache-use-cases-testimonials"></a>

Para saber como empresas como Airbnb, PBS, Esri e outras usam a Amazon ElastiCache para expandir seus negócios com uma melhor experiência do cliente, consulte [Como outras pessoas usam](https://aws.amazon.com/elasticache/testimonials/) a Amazon. ElastiCache

Você também pode assistir aos [vídeos tutoriais](Tutorials.md#tutorial-videos) para ver outros casos de uso de ElastiCache clientes.