Programmering

Sådan bruges NCache i ASP.Net Core

Selvom ASP.Net Core mangler et cacheobjekt, yder det support til flere forskellige typer caching, herunder cache i hukommelsen, distribueret caching og responscaching. Et open source-produkt leveret af Alachisoft, NCache er en ekstremt hurtig, distribueret, skalerbar cacheramme til hukommelse til brug i .Net-applikationer.

NCache er 100 procent oprindeligt. Net. Det er ikke kun hurtigere end Redis, men giver også flere distribuerede cachefunktioner, der ikke understøttes af Redis. Du kan lære mere om forskellene mellem NCache og Redis her. Denne artikel vil diskutere, hvordan vi kan arbejde med NCache i ASP.Net Core-applikationer.

En distribueret cache som NCache kan forbedre både ydeevnen og skalerbarheden af ​​applikationer. I en distribueret cache findes ikke cachelagrede data i hukommelsen på en individuel webserver. Du kan tilføje eller fjerne en server uden at påvirke cachen eller de cachelagrede data. Og hvis nogen af ​​serverne går ned eller holder op med at svare, vil andre servere stadig være i stand til at hente de cachelagrede data. Dette forklarer, hvorfor de cachelagrede data i en distribueret cache kan overleve genstart af serveren.

Opret et ASP.Net Core-projekt i Visual Studio

Lad os først oprette et ASP.Net Core-projekt. Hvis Visual Studio 2017 er i gang i dit system, skal du følge nedenstående trin for at oprette et nyt ASP.Net Core-projekt i Visual Studio.

  1. Start Visual Studio 2017 IDE.
  2. Klik på Filer> Ny> Projekt.
  3. Vælg "ASP.Net Core Web Application (.Net Core)" fra listen over de viste skabeloner.
  4. Angiv et navn til projektet.
  5. Klik på OK for at gemme projektet.
  6. Et nyt vindue "Nyt. Net Core Web Application ..." vises derefter.
  7. Vælg .Net Core som runtime og ASP.Net Core 2.2 (eller nyere) fra rullelisten øverst.
  8. Vælg API som projektskabelon
  9. Sørg for, at afkrydsningsfelterne "Aktivér Docker-support" og "Konfigurer til HTTPS" ikke er markeret, da vi ikke bruger disse funktioner her.
  10. Sørg for, at "Ingen godkendelse" er valgt, da vi heller ikke bruger godkendelse.
  11. Klik på OK.

Du skal nu have et nyt ASP.Net Core-projekt klar til brug i Visual Studio. Derefter skal du installere den nødvendige NuGet-pakke til brug af NCache. Installer følgende NuGet-pakke via NuGet Package Manager-vinduet eller fra NuGet Package Manager-konsollen:

Alachisoft.NCache.SessionServices

Når denne NuGet-pakke er installeret i dit projekt, er du klar til at bruge NCache.

Brug IDistributedCache-grænsefladen i ASP.Net Core

For at bruge en distribueret cache i ASP.Net Core-applikationer skal du bruge IDistributedCache-grænsefladen. IDistributedCache-grænsefladen blev introduceret i ASP.Net Core for at give dig mulighed for nemt at tilslutte tredjeparts caching-rammer. Her ser IDistributedCache ud.

navneområde Microsoft.Extensions.Caching.Distribueret

{

offentlig grænseflade IDistribueret cache

    {

byte [] Get (strengnøgle);

ugyldigt Opdater (strengnøgle);

ugyldig Fjern (strengnøgle);

ugyldigt sæt (strengnøgle, byte [] -værdi,

DistribueredeCacheEntryOptions muligheder);

    }

}

Konfigurer NCache som en IDistributedCache-udbyder i ASP.Net Core

For at arbejde med distribueret cache ved hjælp af NCache, skal du ringe til AddNCacheDistributedCache-metoden i ConfigureServices-metoden i Startup.cs-filen som vist i kodestykket nedenfor. Bemærk, at metoden AddNCacheDistributedCache () er en udvidelse af AddNDistributedCache () -metoden til ASP.Net Core.

offentlig ugyldighed ConfigureServices (IServiceCollection-tjenester)

        {

services.AddNCacheDistributedCache (konfiguration =>

            {

configuration.CacheName = "Distribueret cache";

configuration.EnableLogs = true;

configuration.ExceptionsEnabled = true;

            });          

services.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_2);

        }

Og det er alt hvad du skal gøre. Du kan nu begynde at bruge NCache i dit projekt.

Brug NCache til at gemme og hente cachelagrede objekter i ASP.Net Core

Følgende kodestykke illustrerer, hvordan du kan arbejde med NCache. GetAuthor-metoden vist nedenfor henter forfatterobjektet fra cachen, hvis det er tilgængeligt. Hvis forfatterobjektet ikke er tilgængeligt i cachen, henter GetAuthor-metoden det fra databasen og gemmer derefter objektet i cachen.

 offentlig asynk Task GetAuthor (int id)

        {

_cache = NCache.InitializeCache ("CacheName");

var cacheKey = "Nøgle";

Forfatterforfatter = null;

hvis (_cache! = null)

            {

author = _cache.Get (cacheKey) som forfatter;

            }

if (author == null) // Data ikke tilgængelig i cachen

            {

// Skriv kode her for at 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);

                    }

                }

            }

returnere forfatter;

        }

Og her er forfatterklassen.

 offentlig klasse Forfatter

    {

public int AuthorId {get; sæt; }

offentlig streng Fornavn {get; sæt; }

public string LastName {get; sæt; }

    }

NCache fra Alachisoft er en distribueret cacheløsning til .Net. IDistribueret Cache-interface giver en standard API til at arbejde med en distribueret cache i ASP.Net Core. Du kan bruge den til at tilslutte tredjeparts cacher som NCache hurtigt og nemt.