Når man utvikler prosjekter, brukes cache ofte til å cache noe data i henhold til deres forretningsbehov, eller cache innholdet i databasespørringer for å redusere presset på databasen.
Vanlig brukte minnecacher: System.Runtime.Caching / MemoryCache og Microsoft.Extensions.Caching.Memory
Microsoft har 2 løsninger, 2 forskjellige NuGet-pakker for caching, begge er flotte, ifølge Microsofts anbefaling, foretrekker å bruke Microsoft.Extensions.Caching.Memory fordi det integreres bedre med Asp .NET-kjernen. Den kan enkelt injiseres i Asp .NET Cores avhengighetsinjeksjonsmekanisme.
Denne artikkelen bruker Microsoft.Extensions.Caching.Memory til å cache data, som forkortes MSCache, og Microsoft introduserer:Innloggingen med hyperkoblingen er synlig.
Merk: Microsoft.Extensions.Caching.Memory er trådsikker
Hva kan MSCache gjøre?
- Absolutt utløpt støtte
- Støtte for glidende utløp (spesifiser en tid, TimeSpan, utsettes hvis det er en bufret tid innenfor den angitte tiden, ellers vil den utløpe)
- Utløpt tilbakekobling
- Utløpsdato
MemoryCacheEntryOptions-cacheinnstillinger
- Absolutt utløpAbsolutt utløpstid, hvis null, er betingelsen ugyldig
- AbsoluttUtløpRelativtilNåDen absolutte utløpstiden relativt til nåværende tid (ved bruk av TimeSpan) er nullbetingelse ugyldig
- SlidingExpirationSkyv utløpstiden
- UtløpstokensTilgjengelig for å tilpasse cache-utløp
- Tilbakekall etter utkastelseCache-ugyldiggjøringscallbacks
- PrioritetCache-objektprioritet (rekkefølgen cachen er fullstendig tømt når cachen er full)
- StørrelseRepresenterer størrelsen på de bufrede dataene, som vanligvis er null i minnecachen
Kom i gang med MSCache
Prosjekt ASP.NET kjerne-MVC Installasjon av NuGet Command:
Når du bruker, lag enkle pakker.
Grensesnitt:
Implementering:
Avhengighetsinjeksjonsinjeksjon singleton
Tester bruker MSCache
Skriv data ved bruk av relativ utløp og glidende utløp og utfør en lesetest med koden som følger.
Kontrollerkode:
Skriv bufret data:
Les bufret data:
Tilgang:Innloggingen med hyperkoblingen er synlig.Etter å ha satt den relative utløpsdatoen og den glidende utløpstiden, tilgang til: https://localhost:44370/Home/Get Få de bufrede dataene som følger:
Innen 30 sekunder besøkte jeg lenken for å lese cachen flere ganger og fant ut at den absolutte utløpsdatoen utløp helt etter 30 sekunder, men jeg kunne fortsatt lese den etter å ha skjøvet utløpsdatoen, som vist i figuren under:
(Slutt)
|