Skip to main content

Cache | C#

  • Cache | C#

Interface IMemoryCache

  • Injeção de dependência
    builder.Services.AddMemoryCache()

Interface IDistributedCache

  • Injeção de dependência

Usando a memória

    builder.Services.AddDistributedMemoryCache()

Usando o Redis

    builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = "localhost";
options.InstanceName = "MyAppCache:";
});
info

A interface IDistributedCache é melhor porque o dia que precisar trocar de memória para o Redis, troca apenas a injeção

HybridCache

builder.Services.AddHybridCache(options =>
{
options.MaximumPayloadBytes = 1024 * 1024 * 10; // 10MB
options.MaximumKeyLength = 512;

options.DefaultEntryOptions = new HybridCacheEntryOptions
{
Expiration = TimeSpan.FromMinutes(30),
LocalCacheExpiration = TimeSpan.FromMinutes(30)
};
});
builder.Services.AddMemoryCache();

builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = "localhost";
options.InstanceName = "MyAppCache:";
});

info

Caso o Redis esteja fora do ar ou haja timeout, cache em memória será usado como fallback