NetCache adalah perpustakaan penyimpanan cache yang sederhana dan ketergantungan yang ramah dan tetap.
NetCache dirancang untuk menjadi perpustakaan yang sederhana dan cepat yang menyediakan solusi hampir perak dengan caching dan ketekunan untuk aplikasi .NET. Saya telah merancang perpustakaan agar berfungsi untuk semua aplikasi .NET modern.
Jalankan yang berikut di Konsol Manajer Paket Anda atau instal melalui Nuget Package Manager di Visual Studio atau Rider;
PM > Install-Package NetCacheJika Anda ingin menggunakan NetCache dengan injeksi ketergantungan, Anda juga harus menginstal paket berikut
PM > Install-Package NetCache.DependencyInjectionAnda dapat mulai menggunakan paket dengan menyuntikkannya ke dalam koleksi layanan Anda atau membuat instance baru dari kelas Netcacher.
var cacher = new NetCacher ( new NetCacherOptions ( ) ) ; // Create a new cacher with default optionsAtau, dengan suntikan ketergantungan
services . AddNetCacher ( opts =>
{
.. .
} ) ;Pertama, inilah kelas tiruan kami yang akan kami gunakan dalam contoh berikut:
public class Mock
{
public string FirstName { get ; set ; }
public string LastName { get ; set ; }
public Mock ( string firstName , string lastName )
{
FirstName = firstName ;
LastName = lastName ;
}
} Sekarang kita bisa memulai, untuk mengatur catatan baru di cache, Anda dapat memanggil metode SetObject<TObj> seperti yang ditunjukkan
var myObj = new Mock ( "Foo" , "Bar" ) ;
cacher . SetObject < Mock > ( "myKey" , myObj , TimeSpan . FromMinutes ( 1 ) ) ;
// Object has been cached under the key 'myKey' for 1 minute before it expires Dan untuk mendapatkan catatan yang sama, kita dapat menggunakan metode GetRecord<TObj> seperti yang ditunjukkan di bawah ini
var myObj = cacher . GetObject < Mock > ( "myKey" ) ;
if ( myObj is null )
{
// No object was found in the cache, it could've expired or never existed
Console . WriteLine ( "No object found!" ) ;
return ;
}
Console . WriteLine ( myObj . FirstName ) ; // FooMungkin, serializer default tidak memotongnya untuk Anda dan Anda memerlukan serializer khusus Anda sendiri yang memberi Anda solusi yang dirancang khusus. Tidak masalah, temukan di bawah ini implementasi sederhana dari serializer khusus.
public class CustomSerializer : ISerializer
{
public ReadOnlySpan < char > Serialize < TObj > ( TObj obj )
{
// ...
}
public TObj ? Deserialize < TObj > ( ReadOnlySpan < char > rawData )
{
// ...
}
}Memang bahwa yang satu ini sama sekali tidak melakukan apa -apa, tetapi dapat dengan mudah memberi Anda cukup ruang untuk membangun persyaratan Anda sendiri ke dalam sistem serialisasi. Anda bahkan dapat mempercepat kinerja perpustakaan (dalam hal ini, buka permintaan tarik!).
Lisensi di bawah lisensi MIT dan saat ini memanfaatkan paket open source ini: