Pri vývoji projektov sa cache často používa na cache niektorých dát podľa ich obchodných potrieb alebo na cache obsahu databázových dotazov, aby sa znížil tlak na databázu.
Bežne používané pamäťové cache: System.Runtime.Caching / MemoryCache a Microsoft.Extensions.Caching.Memory
Microsoft má 2 riešenia, 2 rôzne NuGet balíky na cacheovanie, obe sú podľa odporúčania Microsoftu skvelé, radšej používam Microsoft.Extensions.Caching.Memory, pretože sa lepšie integruje s Asp .NET core. Môže byť jednoducho vložený do mechanizmu injekcie závislostí v Asp .NET Core.
Tento článok používa Microsoft.Extensions.Caching.Memory na ukladanie dát do vyrovnávacej pamäte, čo sa skrátene označuje ako MSCache, a Microsoft uvádza:Prihlásenie na hypertextový odkaz je viditeľné.
Poznámka: Microsoft.Extensions.Caching.Memory je bezpečný pre vlákna
Čo môže MSCache urobiť?
- Absolútna expirovaná podpora
- Podpora posuvného vypršania platnosti (špecifikujte čas, TimeSpan, odložené, ak je v danom čase uložený v cache, inak vyprší)
- Expirovaný callback
- Vlastná expirácia
Nastavenia cache MemoryCacheEntryOptions
- AbsolútnaExpiráciaAbsolútny čas vypršania, ak je nulová, podmienka je neplatná
- AbsolútneExpirationRelativeToNowAbsolútny čas vypršania vzhľadom na aktuálny čas (pomocou TimeSpan) je nulová podmienka neplatná
- SlidingExpiráciaPosuňte čas expirácie
- ExpirationTokensDostupné na prispôsobenie expirácie cache
- Spätné volania po vysťahovaníCallbacky na zneplatnenie cache
- PrioritaPriorita položiek cache (poradie, v akom je cache úplne vymazávaná, keď je cache plná)
- VeľkosťPredstavuje veľkosť uložených dát, ktoré sú vo všeobecnosti nullové v cache v pamäti
Začnite s MSCache
Projekt ASP.NET Core MVC Inštalácia príkazu NUGET:
Pri používaní robte jednoduché balíčky.
Rozhranie:
Implementácia:
Konfigurácia injekcie závislostí singleton
Testy používajú MSCache
Zapíšte dáta pomocou relatívnej a posuvnej expirácie a vykonajte čítací test s kódom nasledovne.
Kód ovládača:
Zápis do vyrovnávacej pamäte:
Čítajte uložené dáta:
Prístup:Prihlásenie na hypertextový odkaz je viditeľné.Po nastavení relatívnej a posuvnej expirácie prístup: https://localhost:44370/Home/Get Získajte uložené dáta nasledovne:
Do 30 sekúnd som viackrát navštívil odkaz na čítanie cache a zistil som, že absolútna expirácia úplne vypršala po 30 sekundách, ale stále som ju mohol prečítať aj po posunutí expirácie, ako je znázornené na obrázku nižšie:
(Koniec)
|