Verwendung von NCache in ASP.Net Core

Obwohl ASP.Net Core kein Cache-Objekt besitzt, bietet es Unterstützung für verschiedene Arten von Caching, einschließlich In-Memory-Caching, verteiltem Caching und Antwort-Caching. NCache ist ein Open-Source-Produkt von Alachisoft und ein extrem schnelles, speicherinternes, verteiltes und skalierbares Caching-Framework für die Verwendung in .NET-Anwendungen.

NCache ist zu 100 Prozent nativ .Net. Es ist nicht nur schneller als Redis, sondern bietet auch mehrere verteilte Caching-Funktionen, die von Redis nicht unterstützt werden. Hier erfahren Sie mehr über die Unterschiede zwischen NCache und Redis. In diesem Artikel wird erläutert, wie wir mit NCache in ASP.Net Core-Anwendungen arbeiten können.

Ein verteilter Cache wie NCache kann sowohl die Leistung als auch die Skalierbarkeit von Anwendungen verbessern. In einem verteilten Cache befinden sich die zwischengespeicherten Daten nicht im Speicher eines einzelnen Webservers. Sie können einen Server hinzufügen oder entfernen, ohne den Cache oder die zwischengespeicherten Daten zu beeinträchtigen. Und wenn einer der Server ausfällt oder nicht mehr reagiert, können andere Server die zwischengespeicherten Daten weiterhin abrufen. Dies erklärt, warum die zwischengespeicherten Daten in einem verteilten Cache Serverneustarts überleben können.

Erstellen Sie ein ASP.Net Core-Projekt in Visual Studio

Lassen Sie uns zunächst ein ASP.Net Core-Projekt erstellen. Wenn Visual Studio 2017 auf Ihrem System ausgeführt wird, führen Sie die folgenden Schritte aus, um ein neues ASP.Net Core-Projekt in Visual Studio zu erstellen.

  1. Starten Sie die Visual Studio 2017-IDE.
  2. Klicken Sie auf Datei> Neu> Projekt.
  3. Wählen Sie "ASP.Net Core-Webanwendung (.Net Core)" aus der Liste der angezeigten Vorlagen.
  4. Geben Sie einen Namen für das Projekt an.
  5. Klicken Sie auf OK, um das Projekt zu speichern.
  6. Als nächstes wird ein neues Fenster "Neue .Net Core-Webanwendung ..." angezeigt.
  7. Wählen Sie .Net Core als Laufzeit und ASP.Net Core 2.2 (oder höher) aus der Dropdown-Liste oben aus.
  8. Wählen Sie API als Projektvorlage
  9. Stellen Sie sicher, dass die Kontrollkästchen "Docker-Unterstützung aktivieren" und "Für HTTPS konfigurieren" deaktiviert sind, da diese Funktionen hier nicht verwendet werden.
  10. Stellen Sie sicher, dass "Keine Authentifizierung" ausgewählt ist, da wir auch keine Authentifizierung verwenden.
  11. OK klicken.

Sie sollten jetzt ein neues ASP.Net Core-Projekt in Visual Studio haben. Als Nächstes müssen Sie das für die Verwendung von NCache erforderliche NuGet-Paket installieren. Installieren Sie das folgende NuGet-Paket über das NuGet Package Manager-Fenster oder über die NuGet Package Manager-Konsole:

Alachisoft.NCache.SessionServices

Sobald dieses NuGet-Paket in Ihrem Projekt installiert ist, können Sie NCache verwenden.

Verwenden Sie die IDistributedCache-Schnittstelle in ASP.Net Core

Um einen verteilten Cache in ASP.Net Core-Anwendungen zu verwenden, sollten Sie die IDistributedCache-Schnittstelle verwenden. Die IDistributedCache-Schnittstelle wurde in ASP.Net Core eingeführt, damit Sie problemlos Caching-Frameworks von Drittanbietern einbinden können. So sieht der IDistributedCache aus.

Namespace Microsoft.Extensions.Caching.Distributed

{

    öffentliche Schnittstelle IDistributedCache

    {

        Byte [] Get (String-Schlüssel);

        void Refresh (String-Schlüssel);

        void Remove (String-Schlüssel);

        void Set (String-Schlüssel, Byte [] -Wert,

        DistributedCacheEntryOptions-Optionen);

    }}

}}

Konfigurieren Sie NCache als IDistributedCache-Anbieter in ASP.Net Core

Um mit verteiltem Caching mit NCache zu arbeiten, sollten Sie die AddNCacheDistributedCache-Methode in der ConfigureServices-Methode der Datei Startup.cs aufrufen, wie im folgenden Codeausschnitt gezeigt. Beachten Sie, dass die AddNCacheDistributedCache () -Methode eine Erweiterung der AddNDistributedCache () -Methode von ASP.Net Core ist.

public void ConfigureServices (IServiceCollection-Dienste)

        {

            services.AddNCacheDistributedCache (Konfiguration =>

            {

                configuration.CacheName = "DistributedCache";

                configuration.EnableLogs = true;

                configuration.ExceptionsEnabled = true;

            });          

 services.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_2);

        }}

Und das ist alles was Sie tun müssen. Sie können jetzt NCache in Ihrem Projekt verwenden.

Verwenden Sie NCache, um zwischengespeicherte Objekte in ASP.Net Core zu speichern und abzurufen

Das folgende Codefragment zeigt, wie Sie mit NCache arbeiten können. Die unten gezeigte GetAuthor-Methode ruft das Author-Objekt aus dem Cache ab, falls es verfügbar ist. Wenn das Author-Objekt nicht im Cache verfügbar ist, ruft die GetAuthor-Methode es aus der Datenbank ab und speichert das Objekt im Cache.

 öffentliche asynchrone Aufgabe GetAuthor (int id)

        {

            _cache = NCache.InitializeCache ("CacheName");

            var cacheKey = "Schlüssel";

            Autor author = null;

            if (_cache! = null)

            {

                author = _cache.Get (cacheKey) als Autor;

            }}

           if (author == null) // Daten im Cache nicht verfügbar

            {

                // Schreiben Sie hier Code, um den Autor abzurufen

                // Objekt aus der Datenbank

                if (author! = null)

                {

                    if (_cache! = null)

                    {

                        _cache.Insert (cacheKey, author, null,

                         Cache.NoAbsoluteExpiration,

                         TimeSpan.FromMinutes (10), 

                         Alachisoft.NCache.Runtime.

                         CacheItemPriority.Default);

                    }}

                }}

            }}

            Rückgabe des Autors;

        }}

Und hier ist die Autorenklasse.

 öffentliche Klasse Autor

    {

        public int AuthorId {get; einstellen; }}

        öffentliche Zeichenfolge Vorname {get; einstellen; }}

        öffentlicher String Nachname {get; einstellen; }}

    }}

NCache von Alachisoft ist eine verteilte Caching-Lösung für .Net. Die IDistributedCache-Schnittstelle bietet eine Standard-API für die Arbeit mit einem verteilten Cache in ASP.Net Core. Sie können es verwenden, um Caches von Drittanbietern wie NCache schnell und einfach anzuschließen.