Cache no NodeJS com Redis na Prática
Vložit
- čas přidán 12. 09. 2024
- Você sabia que o desempenho de uma API pode definir o sucesso ou fracasso de uma aplicação?
Estudos apontam que se o usuário precisar esperar 5 segundos para ver um conteúdo em tela, ele vai sair da aplicação e certamente não irá mais voltar.
Mas como corrigir isso? Como que obtenho um ótimo desempenho na minha aplicação? Como que deixo a minha API rápida? Esse é o tema do vídeo de hoje!
Neste vídeo, nós vamos juntar construir uma aplicação do total zero utilizando Node.js, Prisma ORM, Postgres e Redis.
Integrando o Redis na aplicação: 23:49
Compartilha esse vídeo: • Cache no NodeJS com Re...
Automatizando o acesso ao Banco de Dados com o Prisma ORM:
• Automatizando o acesso...
Vídeos que você pode gostar:
UI Kit com Storybook e ReactJS
• Documentando o Fronten...
10 dicas que vão te fazer a utilizar o Google como um Programador Sênior
• Buscando no Google de ...
As funcionalidades do Javascript pedidas nas Entrevistas Técnicas
• As funcionalidades do ...
Desenvolvi um App para a Web3
• Desenvolvi um App para...
✅ Conheça o Long Cycle Developer: dogcode.dev/lo...
✅ Saiba mais sobre o OnMount:
dogcode.dev/on...
dogcode
Comunidade no Discord: / discord
Instagram: @dogcode.dev
Parabéns pelo conteúdo, uma ótima didática. Parabéns !!!
Estou muito impressionado absurdamente top 🎉🎉🎉
Manooo, me ajudou demais cara, não faz ideia!!!
Faala Alan, beleza?
E nós ficamos muito felizes em saber disso, conte com a gente 💙
Show
Conteúdo excelente!
Obrigado pelo conteúdo!
Consigo usar o Elephant com o Railway? tipo, o banco ficar no Elephant e o backend e frontend no railway? Ademais, to maratonando simplesmente todos os seus vídeos!! Muito obrigado por ter feito eles, não pare nunca!! kkk
Muito bom!!!
boa explicação.
uma pergunta, como ficaria esse processo de no caso eu ter um novo dado, por exemplo eu teria que limpar o cache e gerar um novo?, e como eu trataria isso em um sistema saas, onde vários bancos dependem de um único código, essas duvidas creio eu que a grande maioria também tem, pois hoje em dia se usa node muito nestes senários.
Faala Nilo, beleza?
Ótima pergunta, consegue chamar na comunidade para discutirmos sobre isso e evoluirmos juntos?
Show o video! Mas tenho uma duvida! E adequado importa o redis diretamente no controller? ou posso fazer isso na camada serviço?
Muito bom o video, mas vc tem que colocar o console.time() antes do get do redis.get(Key).. pq o consumo de tempo maior está no get e no parse do get.. se não vc está validando tempo dos dados em memória e não do redis.
Como funciona referente a deploy ? redis funciona como uma lib, ou precisamos de fato ter um servidor a parte ?
No canal do devdoido tem um vídeo de cache no node que ele ensina a usar um redis as a service chamado upstash. Vale a pena conferir
Onde hospedar o redis ?
Man, nesse último teste eu soltei um "TA POHHA!"
Prisma ou Sequeliza?
Uma dúvida, nesse caso você cacheou 1000 usuários, e se amanha alguém se cadastrar no seu sistema, são 1001 usuários, mas ele nao vai ser listado pq vc só cacheou os 1000 e nao esse novo ?
Faala Gustavo, beleza?
Então, toda vez que um usuário for criado, atualizado ou deletado, o cache de usuários deve ser removido. Ai quando for buscado novamente, bate no banco, busca os dados novos e cria o cache novamente.
@@dogcodedev entendido, valeuuu
Na verdade não foi 10 vezes mais rápido, foi 90 mil vezes mais rápido a resposta da requisição. Seria 10 vezes mais rápido se a diferença entre ambos fosse de 1,87 segundos na primeira requisição sem o cache para 1 segundo. Vamos lá... A segunda requisição está demorando na ordem de milésimos de segundos, então por exemplo se fosse entre 1.87 segundos pra 1 milésimo de segundo (0,001s ou 1ms) seria uma diferença de 1800 vezes mais rápida mas o que se vê no vídeo é valores diferentes entre 1,87s para 0.02ms(0,00002s dois centésimos de milésimos de segundos) ou seja dividindo 1.87segundos por 0.02ms(milissegundos) a segunda requisição responde 90mil vezes mais rápido.
Mano, tu colocou o início do console.time no lugar errado, por isso tá dando tão rápido, vc deve colocar antes do await redis.get(...)