Programmering

Hvordan bruke NCache i ASP.Net Core

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.

  1. Start Visual Studio 2017 IDE.
  2. Klikk på Fil> Ny> Prosjekt.
  3. Velg “ASP.Net Core Web Application (.Net Core)” fra listen over malene som vises.
  4. Spesifiser et navn på prosjektet.
  5. Klikk OK for å lagre prosjektet.
  6. Et nytt vindu "New .Net Core Web Application ..." vises neste.
  7. Velg .Net Core som kjøretid og ASP.Net Core 2.2 (eller nyere) fra rullegardinlisten øverst.
  8. Velg API som prosjektmal
  9. Forsikre deg om at avmerkingsboksene "Aktiver Docker-støtte" og "Konfigurer for HTTPS" ikke er merket av da vi ikke bruker disse funksjonene her.
  10. Forsikre deg om at "Ingen godkjenning" er valgt, da vi heller ikke bruker autentisering.
  11. 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.