Ao desenvolver projetos, o cache é frequentemente usado para armazenar em cache alguns dados de acordo com suas necessidades de negócios, ou para armazenar em cache o conteúdo das consultas do banco de dados para reduzir a pressão sobre o banco de dadas.
Caches de memória comumente usados: System.Runtime.Caching / MemoryCache e Microsoft.Extensions.Caching.Memory
A Microsoft tem 2 soluções, 2 pacotes NuGet diferentes para cache, ambos são ótimos, segundo a recomendação da Microsoft, preferem usar o Microsoft.Extensions.Caching.Memory porque ele se integra melhor com o Asp .NET Core. Ele pode ser facilmente injetado no mecanismo de injeção de dependências do Asp .NET Core.
Este artigo usa Microsoft.Extensions.Caching.Memory para armazenar dados em cache, que é abreviado como MSCache, e a Microsoft apresenta:O login do hiperlink está visível.
Nota: Microsoft.Extensions.Caching.Memory é seguro para threads
O que o MSCache pode fazer?
- Suporte com expiração absoluta
- Suporte para expiração deslizante (especifique um tempo, TimeSpan, adiado se houver um tempo em cache dentro do tempo especificado, caso contrário expirará)
- Retorno expirado
- Expiração personalizada
Configurações de cache MemoryCacheEntryOptions
- Expiração AbsolutaTempo absoluto de expiração, se nulo, a condição é inválida
- ExpiraçãoAbsolutaRelativaToNowO tempo absoluto de expiração relativo ao tempo atual (usando TimeSpan) é condição nula inválida
- Expiração deslizanteDeslize o tempo de validade
- ExpirationTokensDisponível para personalizar o vencimento do cache
- Retornos pós-EvictionCallingRetornos de invalidação de cache
- PrioridadePrioridade de item do cache (a ordem em que o cache é absolutamente limpo quando ele está cheio)
- TamanhoRepresenta o tamanho dos dados em cache, que geralmente são nulos no cache em memória
Comece com o MSCache
Projeto ASP.NET MVC Núcleo Instalação do Comando Nuget:
Ao usar, faça pacotes simples.
Interface:
Implementação:
Singleton de configuração de injeção de dependências
Os testes utilizam MSCache
Escreva os dados usando expiração relativa e expiração deslizante e realize um teste de leitura com o código da seguinte forma.
Código do Controlador:
Gravar dados em cache:
Leia dados em cache:
Acesso:O login do hiperlink está visível.Após definir a expiração relativa e a expiração deslizante, acesse: https://localhost:44370/Home/Get Obtenha os dados em cache da seguinte forma:
Em 30 segundos, acessei o link para ler o cache várias vezes e descobri que a expiração absoluta expirava completamente após 30 segundos, mas ainda consegui ler após deslizar a expiração, como mostrado na figura abaixo:
(Fim)
|