Node Cosmos DB Azure Cache for Redis


Node Cosmos DB Azure Cache for Redis

Node + Cosmos DB + Azure Cache for Redis

Dando continuidade ao meu artigo anterior: Azure Cosmos DB: Crud completo com Node.js“, hoje eu irei demonstrar como adicionar uma camada de cache na nossa aplicação, utilizando o Azure Cache for Redis.

Para os próximos passos eu irei utilizar o projeto desenvolvido no artigo mencionado acima com o Node + Cosmos DB. Caso você tenha interesse em clonar ele, segue o seu link no meu GitHub: node-cosmosdb.

Com o projeto clonado, vamos adicionar os pacotes necessários para trabalhamos com o redis. Para isso, abra um terminal no seu computador -> navegue até o local que você clonou o projeto node-cosmosdb e execute o comando abaixo:

npm i redis --save

O próximo passo será criar o serviço no Portal Azure. Para isso, acesse o portal com os seus dados de acesso e siga os passos abaixo:

1- Navegue até Azure Cache for Redis seguindo os passos: Create a resource > Databases > Azure Cache for Redis:

 
Node Azure Cache for Redis

2- Preenche os dados abaixo:

  • DNS name: nome da sua aplicação/serviço
  • Subscription: sua assinatura
  • Resource Group: o grupo de recursos que você deseja cadastrar o seu serviço
  • Location: localização do seu serviço
  • Pricing Tier: plano que será configurado para sua aplicação

Abaixo você tem uma imagem demonstrando como eu configurei esse passo:

 
Node + Azure Cache for Redis

Agora clique em create. Esse processo pode demorar alguns minutos. Assim que ele finalizar você irá receber uma notificação no portal, clique nela e vá até o novo serviço criado:

Com o serviço criado no Portal Azure, vamos atualizar o nosso projeto. Para isso, abra o seu projeto e navegue até o arquivo personController.js, em seguida atualize ele com o trecho de código abaixo:

Analisando o trecho de código acima nós temos:

  • 02: Estou adicionando o pacote do redis
  • 04: Passando os dados de acesso (iremos pegar no portal no próximo passo)
  • 11: Eu criei um chave chamada allpersons que deve expirar em 10 segundos, depois desse tempo ele vai no banco -> atualiza o redis com os novos dados.

Agora volte no Portal Azure e clique no serviço que você criou no passo anterior,em seguida vá até Access Keys e copie o valor de Primary:

Em seguida e vá até properties e copie o seu host e porta:

Agora preencha os valores do createClient no seu arquivo personController.js. Abaixo você tem uma imagem demonstrando esse passo:

Testando o Cache

Para verificar se o redis está configurado corretamente, execute o comando npm start no seu terminal e abra o endereço localhost:3000/person.

Caso tudo esteja OK, o seu primeiro request irá bater no banco, buscar os dados e atualizar o redis. O redis irá segurar o cache por 10 segundos até expirar e realizar o passo anterior novamente. Abaixo você tem uma imagem demonstrando esse passo:

 
Node + Cosmos DB + Azure Cache for Redis

Bem simples né?

No próximo artigo eu irei demonstrar como publicar esse projeto no Azure utilizando o App Service.

Caso tenha interesse em clonar o projeto desenvolvido nesse artigo, segue o seu link no meu GitHub: node-cosmosdb-azurecache.

Espero que tenham gostado e até um próximo artigo pessoal 😉

Compartilhe:

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest
Share on linkedin
LinkedIn

Table of Contents

Postagens Relacionadas

iphone12

Apple iPhone 12 Pro Max

Apple iPhone 12 Pro Max  CPU Apple A14 Bionic  RAM 6 GB  Armazenamento 512 GB  Display 6.7 XDR OLED  Câmera 12 Mp + 12 Mp
RockBottomRiser

Rock Bottom Riser

Rock Bottom Riser 01/03/2021(US) – Documentário – 1h 10min –   Nota: 0/10   Sinopse     Elenco Nainoa Thompson Como – master navigator Moses
SaferatHome

Safer at Home

Safer at Home 26/02/2021(US) – Filmes – 0h 0min –   Nota: 0/10   Sinopse     Elenco Mais informações Título Original Safer at Home
SouLunaOUltimoShow

Sou Luna: O Último Show

O elenco de “Sou Luna” se apresenta ao vivo pela última vez no mítico estádio Luna Park em Buenos Aires. Vamos acompanhá-los na intimidade dos bastidores e r…