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:

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:

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:

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 😉