Při vývoji projektů se cache často používá k ukládání některých dat podle jejich obchodních potřeb, nebo k ukládání obsahu databázových dotazů, aby se snížil tlak na databázi.
Běžně používané paměťové cache: System.Runtime.Caching / MemoryCache a Microsoft.Extensions.Caching.Memory
Microsoft má 2 řešení, dva různé balíčky NuGet pro cache, obě jsou podle doporučení Microsoftu skvělé, raději používám Microsoft.Extensions.Caching.Memory, protože se lépe integruje s jádrem Asp .NET. Lze jej snadno vložit do mechanismu injekce závislostí v Asp .NET Core.
Tento článek používá Microsoft.Extensions.Caching.Memory k ukládání dat do cache, což je zkráceně MSCache, a Microsoft představuje:Přihlášení k hypertextovému odkazu je viditelné.
Poznámka: Microsoft.Extensions.Caching.Memory je bezpečný pro vlákna
Co může MSCache udělat?
- Absolutně vypršená podpora
- Podpora posuvného expirace (uveďte čas, TimeSpan, odloženo, pokud je v rámci stanovené doby uložený čas, jinak vyprší)
- Vypršené zpětné volání
- Vlastní expirace
Nastavení cache MemoryCacheEntryOptions
- AbsolutníExpiraceAbsolutní doba expirace, pokud je nulová, podmínka je neplatná
- AbsolutníExpiraceRelativníTeďTeďAbsolutní doba expirace vzhledem k aktuálnímu času (pomocí TimeSpan) je podmínka nulová
- SlidingExpiracePosuňte čas expirace
- ExpirationTokensDostupný pro přizpůsobení expirace cache
- Zpětné volání po vystěhováníCallbacky pro zneplatnění cache
- PrioritaPriorita položek cache (pořadí, v jakém je cache absolutně vymazána, když je cache plná)
- VelikostPředstavuje velikost cacheovaných dat, která jsou obecně nullová v cache v paměťové
Začněte s MSCache
Projekt ASP.NET Core MVC Instalace příkazu NUGET:
Při používání si dělejte jednoduché balíčky.
Rozhraní:
Implementace:
Konfigurace injekce závislostí singleton
Testy používají MSCache
Zapisujte data pomocí relativního a posuvného expirace a proveďte test čtení s kódem následovně.
Kód ovladače:
Zápis cacheovaných dat:
Číst uložená data:
Přístup:Přihlášení k hypertextovému odkazu je viditelné.Po nastavení relativní a posuvné expirace přistup: https://localhost:44370/Home/Get Získejte cacheovaná data následovně:
Během 30 sekund jsem několikrát navštívil odkaz pro přečtení cache a zjistil jsem, že absolutní expirace úplně vypršela po 30 sekundách, ale i po posunutí expirace jsem ji mohl přečíst, jak je znázorněno na obrázku níže:
(Konec)
|