Saat mengembangkan proyek, cache sering digunakan untuk menyimpan beberapa data sesuai dengan kebutuhan bisnis mereka, atau menyimpan konten kueri database untuk mengurangi tekanan pada database.
Cache memori yang umum digunakan: System.Runtime.Caching / MemoryCache dan Microsoft.Extensions.Caching.Memory
Microsoft memiliki 2 solusi, 2 paket NuGet yang berbeda untuk caching, keduanya bagus, menurut rekomendasi Microsoft, lebih suka menggunakan Microsoft.Extensions.Caching.Memory karena terintegrasi lebih baik dengan Asp .NET core. Ini dapat dengan mudah disuntikkan ke mekanisme injeksi dependensi Asp .NET Core.
Artikel ini menggunakan Microsoft.Extensions.Caching.Memory untuk menyimpan data cache, yang disingkat MSCache, dan Microsoft memperkenalkan:Login hyperlink terlihat.
Catatan: Microsoft.Extensions.Caching.Memory aman untuk utas
Apa yang bisa dilakukan MSCache?
- Dukungan kedaluwarsa mutlak
- Dukungan kedaluwarsa geser (tentukan waktu, TimeSpan, ditunda jika ada waktu yang di-cache dalam waktu yang ditentukan, jika tidak maka akan kedaluwarsa)
- Panggilan balik kedaluwarsa
- Kedaluwarsa kustom
Pengaturan cache MemoryCacheEntryOptions
- Kedaluwarsa AbsolutWaktu kedaluwarsa absolut, jika null, kondisinya tidak valid
- AbsoluteExpirationRelativeToNowWaktu kedaluwarsa absolut relatif terhadap waktu saat ini (menggunakan TimeSpan) adalah kondisi null tidak valid
- Kedaluwarsa GeserGeser waktu kedaluwarsa
- Token KedaluwarsaTersedia untuk menyesuaikan kedaluwarsa cache
- PostEvictionCallbackCallback pembatalan cache
- PrioritasPrioritas item cache (urutan di mana cache benar-benar dihapus saat cache penuh)
- UkuranMewakili ukuran data yang di-cache, yang umumnya null dalam cache dalam memori
Mulai menggunakan MSCache
Proyek ASP.NET Inti MVC Instalasi perintah Nuget:
Saat menggunakan, buat paket sederhana.
Antarmuka:
Implementasi:
Konfigurasi injeksi dependensi singleton
Pengujian menggunakan MSCache
Tulis data menggunakan kedaluwarsa relatif dan kedaluwarsa geser dan lakukan uji baca dengan kode sebagai berikut.
Kode Pengontrol:
Tulis data yang di-cache:
Baca data yang di-cache:
Akses:Login hyperlink terlihat.Setelah mengatur kedaluwarsa relatif dan kedaluwarsa geser, akses: https://localhost:44370/Home/Get Dapatkan data yang di-cache sebagai berikut:
Dalam waktu 30 detik, saya mengunjungi tautan untuk membaca cache beberapa kali dan menemukan bahwa kedaluwarsa absolut benar-benar kedaluwarsa setelah 30 detik, tetapi saya masih dapat membacanya setelah menggeser kedaluwarsa, seperti yang ditunjukkan pada gambar di bawah ini:
(Akhir)
|