Selv om ASP.Net Core mangler et cache-objekt, gir det støtte for flere forskjellige typer hurtigbufring, inkludert hurtigbufring i minnet, distribuert caching og responsbufring. Et åpen kildekode-produkt levert av Alachisoft, NCache, er et ekstremt raskt, distribuert, skalerbart cacherammeverk i minnet for bruk i .Net-applikasjoner.
NCache er 100 prosent innfødt. Net. Det er ikke bare raskere enn Redis, men gir også flere distribuerte caching-funksjoner som ikke støttes av Redis. Du kan lære mer om forskjellene mellom NCache og Redis her. Denne artikkelen vil diskutere hvordan vi kan jobbe med NCache i ASP.Net Core-applikasjoner.
En distribuert cache som NCache kan forbedre både ytelsen og skalerbarheten til applikasjoner. I en distribuert cache ligger ikke de bufrede dataene i minnet til en enkelt webserver. Du kan legge til eller fjerne en server uten å påvirke hurtigbufferen eller bufret data. Og hvis noen av serverne går ned eller slutter å svare, vil andre servere fremdeles kunne hente bufrede data. Dette forklarer hvorfor bufrede data i en distribuert cache kan overleve serverstart på nytt.
Opprett et ASP.Net Core-prosjekt i Visual Studio
Først og fremst, la oss lage et ASP.Net Core-prosjekt. Hvis Visual Studio 2017 er i gang i systemet ditt, følger du trinnene nedenfor for å opprette et nytt ASP.Net Core-prosjekt i Visual Studio.
- Start Visual Studio 2017 IDE.
- Klikk på Fil> Ny> Prosjekt.
- Velg “ASP.Net Core Web Application (.Net Core)” fra listen over malene som vises.
- Spesifiser et navn på prosjektet.
- Klikk OK for å lagre prosjektet.
- Et nytt vindu "New .Net Core Web Application ..." vises neste.
- Velg .Net Core som kjøretid og ASP.Net Core 2.2 (eller nyere) fra rullegardinlisten øverst.
- Velg API som prosjektmal
- Forsikre deg om at avmerkingsboksene "Aktiver Docker-støtte" og "Konfigurer for HTTPS" ikke er merket av da vi ikke bruker disse funksjonene her.
- Forsikre deg om at "Ingen godkjenning" er valgt, da vi heller ikke bruker autentisering.
- Klikk OK.
Du bør nå ha et nytt ASP.Net Core-prosjekt klart til bruk i Visual Studio. Deretter må du installere den nødvendige NuGet-pakken for bruk av NCache. Installer følgende NuGet-pakke via NuGet Package Manager-vinduet eller fra NuGet Package Manager-konsollen:
Alachisoft.NCache.SessionServices
Når denne NuGet-pakken er installert i prosjektet ditt, er du klar til å bruke NCache.
Bruk IDistributedCache-grensesnittet i ASP.Net Core
For å bruke en distribuert cache i ASP.Net Core-applikasjoner, bør du bruke IDistributedCache-grensesnittet. IDistributedCache-grensesnittet ble introdusert i ASP.Net Core for å gjøre det enkelt å koble til tredjeparts cache-rammer. Slik ser IDistributedCache ut.
navneområdet Microsoft.Extensions.Caching.Distribuert{
offentlig grensesnitt IDistributedCache
{
byte [] Get (strengnøkkel);
ugyldig Oppdater (strengnøkkel);
ugyldig Fjern (strengnøkkel);
ugyldig sett (strengnøkkel, byte [] -verdi,
DistribuerteCacheEntryOptions-alternativer);
}
}
Konfigurer NCache som IDistributedCache-leverandør i ASP.Net Core
For å jobbe med distribuert caching ved hjelp av NCache, bør du ringe til AddNCacheDistributedCache-metoden i ConfigureServices-metoden i Startup.cs-filen som vist i kodebiten nedenfor. Merk at metoden AddNCacheDistributedCache () er en utvidelse av AddNDistributedCache () -metoden til ASP.Net Core.
offentlig ugyldighet ConfigureServices (IServiceCollection-tjenester){
services.AddNCacheDistributedCache (konfigurasjon =>
{
configuration.CacheName = "DistribuertCache";
configuration.EnableLogs = true;
configuration.ExceptionsEnabled = true;
});
services.AddMvc (). SetCompatibilityVersion
(CompatibilityVersion.Version_2_2);
}
Og det er alt du trenger å gjøre. Du kan nå begynne å bruke NCache i prosjektet ditt.
Bruk NCache til å lagre og hente hurtigbufrede objekter i ASP.Net Core
Følgende kodebit illustrerer hvordan du kan jobbe med NCache. GetAuthor-metoden vist nedenfor henter forfatterobjektet fra hurtigbufferen hvis det er tilgjengelig. Hvis forfatterobjektet ikke er tilgjengelig i hurtigbufferen, henter GetAuthor-metoden det fra databasen og lagrer deretter objektet i hurtigbufferen.
public async Task GetAuthor (int id){
_cache = NCache.InitializeCache ("CacheName");
var cacheKey = "Nøkkel";
Forfatterforfatter = null;
hvis (_cache! = null)
{
author = _cache.Get (cacheKey) som forfatter;
}
if (author == null) // Data ikke tilgjengelig i hurtigbufferen
{
// Skriv kode her for å hente forfatteren
// objekt fra databasen
hvis (forfatter! = null)
{
hvis (_cache! = null)
{
_cache.Insert (cacheKey, forfatter, null,
Cache.NoAbsoluteExpiration,
TimeSpan.FromMinutes (10),
Alachisoft.NCache.Runtime.
CacheItemPriority.Default);
}
}
}
retur forfatter;
}
Og her er forfatterklassen.
offentlig klasse Forfatter{
public int AuthorId {get; sett; }
offentlig streng Fornavn {get; sett; }
offentlig streng Etternavn {get; sett; }
}
NCache fra Alachisoft er en distribuert hurtigløsning for .Net. IDistributedCache-grensesnittet gir et standard API for å jobbe med en distribuert cache i ASP.Net Core. Du kan bruke den til å koble til tredjeparts cacher som NCache raskt og enkelt.