Sobes.tech
Junior — Middle

Que abordagens ou ferramentas você utilizou para implementar o cache de dados?

sobes.tech IA

Resposta da IA

Para o armazenamento em cache de dados em C#, frequentemente utilizo várias abordagens:

  • MemoryCache do espaço de nomes System.Runtime.Caching — para cache local na memória da aplicação. Permite definir o tempo de vida do cache, prioridades, etc.

  • IMemoryCache e IDistributedCache do ASP.NET Core — para cache em aplicações web. IMemoryCache é um cache local, IDistrubutedCache é para cache distribuído (por exemplo, Redis).

  • Sistemas de cache externos, como Redis ou Memcached, para cache escalável e distribuído.

Exemplo de uso do MemoryCache:

using System.Runtime.Caching;

var cache = MemoryCache.Default;
string cacheKey = "user_123";
var user = cache.Get(cacheKey) as User;
if (user == null)
{
    user = GetUserFromDatabase(123); // método para obter da base de dados
    cache.Set(cacheKey, user, DateTimeOffset.Now.AddMinutes(10));
}
// usamos user

Este método reduz o número de acessos à base de dados e melhora o desempenho.