Как да използвам NCache в ASP.Net Core

Въпреки че на ASP.Net Core липсва кеш обект, той осигурява поддръжка за няколко различни вида кеширане, включително кеширане в паметта, разпределено кеширане и кеширане на отговори. Продукт с отворен код, предоставен от Alachisoft, NCache е изключително бърза, в паметта, разпределена, мащабируема рамка за кеширане за използване в .Net приложения.

NCache е 100% роден .Net. Той е не само по-бърз от Redis, но също така предоставя няколко функции за разпределено кеширане, които не се поддържат от Redis. Можете да научите повече за разликите между NCache и Redis тук. Тази статия ще обсъди как можем да работим с NCache в приложенията на ASP.Net Core.

Разпределеният кеш като NCache може да подобри както производителността, така и мащабируемостта на приложенията. В разпределен кеш кешираните данни не се намират в паметта на отделен уеб сървър. Можете да добавяте или премахвате сървър, без да засягате кеша или кешираните данни. И ако някой от сървърите падне или спре да реагира, други сървъри пак ще могат да извличат кешираните данни. Това обяснява защо кешираните данни в разпределен кеш могат да оцелеят при рестартиране на сървъра.

Създайте ASP.Net Core проект в Visual Studio

Първо, нека създадем проект ASP.Net Core. Ако Visual Studio 2017 работи и работи във вашата система, следвайте стъпките, дадени по-долу, за да създадете нов проект ASP.Net Core в Visual Studio.

  1. Стартирайте IDE на Visual Studio 2017.
  2. Щракнете върху Файл> Ново> Проект.
  3. Изберете „ASP.Net Core Web Application (.Net Core)“ от списъка с показаните шаблони.
  4. Посочете име за проекта.
  5. Щракнете върху OK, за да запазите проекта.
  6. След това се показва нов прозорец „New .Net Core Web Application ...“.
  7. Изберете .Net Core като време на изпълнение и ASP.Net Core 2.2 (или по-нова версия) от падащия списък в горната част.
  8. Изберете API като шаблон на проекта
  9. Уверете се, че квадратчетата „Активиране на поддръжката на Docker“ и „Конфигуриране за HTTPS“ са отметнати, тъй като тук няма да използваме тези функции.
  10. Уверете се, че е избрано „Без удостоверяване“, тъй като и ние няма да използваме удостоверяване.
  11. Щракнете върху OK.

Вече трябва да имате нов проект ASP.Net Core, готов за работа в Visual Studio. След това ще трябва да инсталирате необходимия пакет NuGet за използване на NCache. Инсталирайте следния пакет NuGet чрез прозореца NuGet Package Manager или от конзолата NuGet Package Manager:

Alachisoft.NCache.SessionServices

След като този пакет NuGet бъде инсталиран във вашия проект, вие сте готови да използвате NCache.

Използвайте интерфейса IDistributedCache в ASP.Net Core

За да използвате разпределен кеш в приложения на ASP.Net Core, трябва да използвате интерфейса IDistributedCache. Интерфейсът IDistributedCache е въведен в ASP.Net Core, за да ви позволи лесно да включите рамки за кеширане на трети страни. Ето как изглежда IDistributedCache.

пространство от имена Microsoft.Extensions.Caching.Distributed

{

    публичен интерфейс IDistributedCache

    {

        байт [] Get (низ ключ);

        void Refresh (низ ключ);

        void Премахване (низ ключ);

        void Set (низ ключ, байт [] стойност,

        DistributedCacheEntryOptions опции);

    }

}

Конфигурирайте NCache като доставчик на IDistributedCache в ASP.Net Core

За да работите с разпределено кеширане с помощта на NCache, трябва да се обадите на метода AddNCacheDistributedCache в метода ConfigureServices на файла Startup.cs, както е показано в кодовия фрагмент по-долу. Обърнете внимание, че методът AddNCacheDistributedCache () е разширение на метода AddNDistributedCache () на ASP.Net Core.

публична невалидна ConfigureServices (услуги на IServiceCollection)

        {

            services.AddNCacheDistributedCache (конфигурация =>

            {

                configuration.CacheName = "DistributedCache";

                configuration.EnableLogs = true;

                configuration.ExceptionsEnabled = вярно;

            });          

 услуги.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_2);

        }

И това е всичко, което трябва да направите. Вече можете да започнете да използвате NCache във вашия проект.

Използвайте NCache за съхраняване и извличане на кеширани обекти в ASP.Net Core

Следният кодов фрагмент илюстрира как можете да работите с NCache. Показаният по-долу метод GetAuthor извлича обекта Автор от кеша, ако е наличен. Ако обектът Автор не е наличен в кеша, методът GetAuthor го извлича от базата данни и след това съхранява обекта в кеша.

 обществена асинхронна задача GetAuthor (int id)

        {

            _cache = NCache.InitializeCache ("CacheName");

            var cacheKey = "Ключ";

            Автор автор = нула;

            if (_cache! = null)

            {

                author = _cache.Get (cacheKey) като Автор;

            }

           if (author == null) // Данните не са налични в кеша

            {

                // Напишете код тук, за да изтеглите автора

                // обект от базата данни

                ако (автор! = нула)

                {

                    if (_cache! = null)

                    {

                        _cache.Insert (cacheKey, автор, нула,

                         Cache.NoAbsoluteExpiration,

                         TimeSpan.FromMinutes (10), 

                         Alachisoft.NCache.Runtime.

                         CacheItemPriority.Default);

                    }

                }

            }

            автор на връщане;

        }

И тук е класът Автор.

 публична класа Автор

    {

        public int AuthorId {get; комплект; }

        публичен низ FirstName {get; комплект; }

        публичен низ LastName {get; комплект; }

    }

NCache от Alachisoft е разпределено кеширащо решение за .Net. Интерфейсът IDistributedCache предоставя стандартен API за работа с разпределен кеш в ASP.Net Core. Можете да го използвате, за да включите бързо и лесно кешове на трети страни като NCache.