Bij het ontwikkelen van projecten wordt cache vaak gebruikt om bepaalde data te cachen volgens hun zakelijke behoeften, of om de inhoud van databasequers te cachen om de druk op de database te verminderen.
Veelgebruikte geheugencaches: System.Runtime.Caching / MemoryCache en Microsoft.Extensions.Caching.Memory
Microsoft heeft 2 oplossingen, 2 verschillende NuGet-pakketten voor caching, beide zijn geweldig, volgens Microsofts aanbeveling, en geven de voorkeur aan Microsoft.Extensions.Caching.Memory omdat het beter integreert met de Asp .NET core. Het kan eenvoudig worden geïnjecteerd in het afhankelijkheidsinjectiemechanisme van Asp .NET Core.
Dit artikel gebruikt Microsoft.Extensions.Caching.Memory om data te cachen, die wordt afgekort als MSCache, en Microsoft introduceert:De hyperlink-login is zichtbaar.
Opmerking: Microsoft.Extensions.Caching.Memory is thread-veilig
Wat kan MSCache doen?
- Absolute verlopen support
- Ondersteuning voor glijdende vervaldatum (geef een tijd, TimeSpan, wordt uitgesteld als er een gecachete tijd is binnen de opgegeven tijd, anders verloopt het)
- Verlopen terugbelverzoek
- Aangepaste vervaldatum
MemoryCacheEntryOptions cache-instellingen
- Absolute VervaldatumAbsolute vervaltijd, als nul is de voorwaarde ongeldig
- AbsoluteExpirationRelatiefToNuDe absolute vervaldatum ten opzichte van de huidige tijd (met TimeSpan) is nulvoorwaarde ongeldig
- SlidingExpirationSchuif de houdbaarheidstijd uit
- VervalTokensBeschikbaar om de vervaldatum van de cache aan te passen
- Terugroepen na ontruimingCache-onvalidatiecallbacks
- PrioriteitCache-itemprioriteit (de volgorde waarin de cache volledig wordt gewist wanneer de cache vol is)
- GrootteGeeft de grootte van de gecachte data weer, die doorgaans nul is in de geheugencache
Begin met MSCache
Project ASP.NET Core MVC Nuget Command installatie:
Maak eenvoudige pakketten bij gebruik.
Interface:
Implementatie:
Afhankelijkheidsinjectieconfiguratie singleton
Tests gebruiken MSCache
Schrijf gegevens met relatieve vervaldatum en schuifvervaldatum en voer een leestest uit met de code als volgt.
Controllercode:
Schrijf gecachte data:
Lees gecachte gegevens:
Toegang:De hyperlink-login is zichtbaar.Na het instellen van de relatieve vervaldatum en glijdende vervaldatum, wordt het volgende geraadpleegd: https://localhost:44370/Home/Get Haal de gecachte gegevens als volgt op:
Binnen 30 seconden heb ik de link meerdere keren bezocht om de cache te lezen en ontdekte dat de absolute vervaldatum na 30 seconden volledig verliep, maar ik kon hem nog steeds lezen nadat ik de vervaldatum had verschoven, zoals te zien is in de onderstaande figuur:
(Einde)
|