Cara menggunakan NCache di ASP.Net Core

Meskipun ASP.Net Core tidak memiliki objek cache, ASP.Net Core menyediakan dukungan untuk beberapa jenis cache yang berbeda termasuk cache dalam memori, cache terdistribusi, dan cache respons. Produk open-source yang disediakan oleh Alachisoft, NCache adalah kerangka kerja cache yang sangat cepat, dalam memori, terdistribusi, dan skalabel untuk digunakan dalam aplikasi .Net.

NCache adalah 100 persen asli .Net. Ini tidak hanya lebih cepat dari Redis, tetapi juga menyediakan beberapa fitur cache terdistribusi yang tidak didukung oleh Redis. Anda dapat mempelajari lebih lanjut tentang perbedaan antara NCache dan Redis di sini. Artikel ini akan membahas bagaimana kita dapat bekerja dengan NCache di aplikasi ASP.Net Core.

Cache terdistribusi seperti NCache dapat meningkatkan kinerja dan skalabilitas aplikasi. Dalam cache terdistribusi, data cache tidak berada di memori server web individu. Anda dapat menambah atau menghapus server tanpa memengaruhi cache atau data cache. Dan jika ada server yang mati atau berhenti merespons, server lain masih dapat mengambil data yang di-cache. Ini menjelaskan mengapa data yang di-cache dalam cache terdistribusi dapat bertahan dari restart server.

Buat proyek ASP.Net Core di Visual Studio

Pertama, mari buat proyek Inti ASP.Net. Jika Visual Studio 2017 sudah aktif dan berjalan di sistem Anda, ikuti langkah-langkah yang diberikan di bawah ini untuk membuat proyek ASP.Net Core baru di Visual Studio.

  1. Luncurkan Visual Studio 2017 IDE.
  2. Klik File> New> Project.
  3. Pilih "ASP.Net Core Web Application (.Net Core)" dari daftar template yang ditampilkan.
  4. Tentukan nama untuk proyek tersebut.
  5. Klik OK untuk menyimpan proyek.
  6. Jendela baru "Aplikasi Web Inti. Bersih Baru ..." ditampilkan berikutnya.
  7. Pilih .Net Core sebagai runtime dan ASP.Net Core 2.2 (atau yang lebih baru) dari daftar drop-down di bagian atas.
  8. Pilih API sebagai template proyek
  9. Pastikan kotak centang "Aktifkan Dukungan Docker" dan "Konfigurasi untuk HTTPS" tidak dicentang karena kami tidak akan menggunakan fitur tersebut di sini.
  10. Pastikan bahwa "Tanpa Otentikasi" dipilih karena kami juga tidak akan menggunakan otentikasi.
  11. Klik OK.

Anda sekarang harus memiliki proyek ASP.Net Core baru yang siap digunakan di Visual Studio. Selanjutnya, Anda perlu menginstal paket NuGet yang diperlukan untuk menggunakan NCache. Instal paket NuGet berikut melalui jendela NuGet Package Manager atau dari konsol NuGet Package Manager:

Alachisoft.NCache.SessionServices

Setelah paket NuGet ini diinstal di proyek Anda, Anda siap untuk menggunakan NCache.

Gunakan antarmuka IDistributedCache di ASP.Net Core

Untuk menggunakan cache terdistribusi dalam aplikasi ASP.Net Core, Anda harus menggunakan antarmuka IDistributedCache. Antarmuka IDistributedCache diperkenalkan di ASP.Net Core untuk memungkinkan Anda dengan mudah menyambungkan kerangka kerja cache pihak ketiga. Berikut adalah tampilan IDistributedCache.

namespace Microsoft.Extensions.Caching.Distributed

{

    antarmuka publik IDistributedCache

    {

        byte [] Dapatkan (kunci string);

        void Refresh (kunci string);

        batal Hapus (kunci string);

        void Set (kunci string, nilai byte [],

        DistributedCacheEntryOptions);

    }

}

Konfigurasi NCache sebagai penyedia IDistributedCache di ASP.Net Core

Untuk bekerja dengan cache terdistribusi menggunakan NCache, Anda harus melakukan panggilan ke metode AddNCacheDistributedCache dalam metode ConfigureServices dari file Startup.cs seperti yang ditunjukkan pada potongan kode di bawah ini. Perhatikan bahwa metode AddNCacheDistributedCache () adalah perpanjangan dari metode AddNDistributedCache () dari ASP.Net Core.

public void ConfigureServices (layanan IServiceCollection)

        {

            services.AddNCacheDistributedCache (konfigurasi =>

            {

                konfigurasi.CacheName = "DistributedCache";

                konfigurasi.EnableLogs = true;

                konfigurasi.ExceptionsEnabled = true;

            });          

 services.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_2);

        }

Dan hanya itu yang perlu Anda lakukan. Anda sekarang dapat mulai menggunakan NCache dalam proyek Anda.

Gunakan NCache untuk menyimpan dan mengambil objek yang di-cache di ASP.Net Core

Potongan kode berikut menggambarkan bagaimana Anda dapat bekerja dengan NCache. Metode GetAuthor yang ditunjukkan di bawah mengambil objek Author dari cache jika tersedia. Jika objek Author tidak tersedia di cache, metode GetAuthor akan mengambilnya dari database dan kemudian menyimpan objek tersebut di cache.

 public async Task GetAuthor (int id)

        {

            _cache = NCache.InitializeCache ("CacheName");

            var cacheKey = "Kunci";

            Penulis penulis = null;

            jika (_cache! = null)

            {

                author = _cache.Get (cacheKey) sebagai Penulis;

            }

           if (author == null) // Data tidak tersedia di cache

            {

                // Tulis kode di sini untuk memanggil penulis

                // objek dari database

                if (penulis! = null)

                {

                    jika (_cache! = null)

                    {

                        _cache.Insert (cacheKey, author, null,

                         Cache.NoAbsoluteExpiration,

                         TimeSpan.FromMinutes (10), 

                         Alachisoft.NCache.Runtime.

                         CacheItemPriority.Default);

                    }

                }

            }

            penulis kembali;

        }

Dan inilah kelas Penulis.

 kelas publik Penulis

    {

        public int AuthorId {get; set; }

        string publik FirstName {get; set; }

        string publik LastName {get; set; }

    }

NCache dari Alachisoft adalah solusi caching terdistribusi untuk .Net. Antarmuka IDistributedCache menyediakan API standar untuk bekerja dengan cache terdistribusi di ASP.Net Core. Anda dapat menggunakannya untuk menyambungkan cache pihak ketiga seperti NCache dengan cepat dan mudah.