.Net Core — Cache distribuído com Redis

Thiago Costa
Nov 6 · 2 min read

Aplicações baseadas no ASP.NET Core devem utilizar a interface IDistributedCache (namespace Microsoft.Extensions.Caching.Distributed) para trabalhar com cache distribuído.

O primeiro passo para trabalhar com Redis em seu projeto .net core é adicionar o pacote Microsoft.Extensions.Caching.Redis. Veja imagem ilustrativa abaixo

Em seguida crie uma string de conexão para o redis no appsettings.json (você pode consultar as opções adicionais para a string de conexão nesse link: https://stackexchange.github.io/StackExchange.Redis/Configuration.html), veja imagem abaixo (não esquece de substituir seu_ip pelo endereço ip do Redis):

Na classe Sartup.cs em configureServices adicione o serviço do Redis conforme imagem abaixo.

Agora vou mostrar a implementação exemplo no controller da api (utilizei o template de api padrão do visual studio).

A ideia do código é cachear uma mensagem de retorno que contem o horário do servidor.

No método da imagem abaixo, primeiro verifico se existe cache no Redis (através do cache.GetString), caso não exista a chave “time” eu pego o horário do servidor e adiciono a chave time no Redis (através do cache.SetString )atribuindo um tempo de expiração de 2 minutos.

No final do método eu retorno o horário através da variável retorno que terá seu conteúdo atualizado a cada 2 minutos.

Testando o código:

Na primeira chamada não teremos cache no Redis logo teremos algo como a imagem abaixo:

Na segunda chamada a url o valor retornado é o que esta no cache, ou seja, o horário do relógio do servidor vai mudar mas o valor que a api retorna se manterá o mesmo durante 2 minutos.

Isso ai jovens! .Net Core com Redis rodando — Bora brincar!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade