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