Herkese merhaba,
Bugün işleyeceğimiz pratik dersin konusu .Net core üzerinde cache
kullanımı.
Yakın zamanda kendi projelerimde performans arttırmak amacıyla
kullandığım bir yöntem oldu.
Şunu belirtmeliyim benim gibi konuya yeni hakim olacaklar için
performans anlamında işinizi bayağı kolaylaştıracak bir hamle.
Özellikle (kendi projemde ihtiyacımı karşılayan) view'e gönderilen
toplu veri gösterimlerinde pagination desteğiyle birlikte performansı üst düzey
hızlandıracaktır.
Projemde 100.000 satır veriyi hızlı ve sorunsuz bir şekilde
kullanıcıya göstermem gerektiği için cache işlemi günün kurtarıcısı oldu.
Basit anlamda cache işlemini şöyle düşünebilirsiniz.
Bir sokak düşünün sokağın en başında dükkanınız, en sonunda
deponuz bulunmakta.
Deponuzdan almanız gereken her eşya için sürekli git gel yapmanız
gerekecek.
Zaman ve işlem anlamında maliyetiniz tamamiyle artacaktır.
Fakat sürekli git gel yerine yanınızda bulunduracağınız bir
platform ile tüm ihtiyaçlarınızı üzerine yükleyip(geçici bir süre) ihtiyacınız
olduğunda kullanabilir hale getireceksiniz.Kaba tabiriyle olay bu.
Aşağıda kod olarak örneğini paylaşıyorum.
Key Tanımlanır:
const string ogrencikey= "itemkey";
Model tanımı oluşturulur:
List<Ogrenci> cachemaster;
Cache kontrolü ile get ve set işlemi yapılır:
if (!_memCache.TryGetValue(cacheKey,out ogrencikey))
{
cachemasters = _baserepository.ListItems();
var cacheExpOptions = new MemoryCacheEntryOptions
{
AbsoluteExpiration = DateTime.Now.AddMinutes(30),
Priority = CacheItemPriority.Normal
};
_memCache.Set(ogrencikey, cachemasters, cacheExpOptions);
}
else
{
cachemasters = _memCache.Get(cacheKey) as List;
}
Startup Class:
services.AddMemoryCache();
Controller Constructor:
Constructor ile IMemoryCache interface'ini çağırırız.
private readonly IMemoryCache _memCache;
Sonuç olarak öğrenci modelimizi cache kontrolü ile olmadığında set ettik.
Eğer var ise get ile modelimizi cache üzerinden çağırdık.
CacheExpOptions alanında cache işlemi için ayarlarını set ettik.
Basit anlamda cache kullanımını böylece tamamlamış olduk.İlerde doğabilecek farklı ihtiyaçlarda derinlemesine yapacağımız incelemeyi serinin devamında birlikte inceleyeceğiz.
Teşekkürler
Source:medium-sefikcankanber
Cache Kullanımı .Net Core 1
