In-Memory Cache Nedir?
In-Memory Cache, uygulamanızın belleğinde verileri geçici olarak saklama yöntemidir. Bu, aynı verilerin tekrar tekrar sorgulanmasını önler ve uygulamanızın hızını artırır. In-Memory Cache, özellikle sık kullanılan verilerin hızlı erişimini sağlamak için ideal bir seçenektir.
In-Memory Cache’in Avantajları
Daha hızlı yanıt süreleri: Önbellekteki verilere hızlı erişim, istemcilerinizin uygulamanızı daha hızlı deneyimlemesini sağlar.
Veritabanı yükünün azaltılması: Sık kullanılan sorguların veritabanına erişimini azaltarak veritabanı sunucusunun yükünü azaltır.
Ölçeklenebilirlik: In-Memory Cache, uygulamanızın ölçeklenebilirliğini artırabilir, çünkü daha az veritabanı istemi işlemi gerektirir.
ASP.NET Core’da In-Memory Cache Nasıl Kullanılır?
In-Memory Cache’i ASP.NET Core uygulamanıza entegre etmek için aşağıdaki adımları takip edebilirsiniz:
a. Microsoft.Extensions.Caching.Memory
paketini projenize ekleyin.
b. Startup.cs
dosyasında IServiceCollection
‘a AddMemoryCache()
ekleyin.
c. In-Memory Cache’i kullanmak için IMemoryCache interface
arayüzünü inject edin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class SampleService { private readonly IMemoryCache _cache; public SampleService(IMemoryCache cache) { _cache = cache; } public string GetCachedData() { if (!_cache.TryGetValue("myKey", out string cachedData)) { // Veriyi cache'ten alamazsak, veritabanından alabiliriz. cachedData = GetDataFromDatabase(); _cache.Set("myKey", cachedData, TimeSpan.FromMinutes(15)); // 15 dakika boyunca önbellekte tutma } return cachedData; } } |
IMemoryCache – Get() ve set() methodu
Memory’de istediğimiz türde verileri saklayabiliriz. (Resim vs.) Data saklama biçimimiz Key-Value mantığında çalışıyor.
Dikkat etmemiz gereken tek kısım memory’deki hafıza miktarımız.
Get : Datayı almak için kullanılır.
Set : Datayı set etmek için kullanılır.
Set Kullanımı : “username” bilgisini memory’e set ediyoruz. Memory’de bu key varsa iki farklı şekilde kontrol edip set edebiliriz.
Cache Temizleme ve Yenileme Önbellekteki verileri yönetmek için Remove
ve Clear
gibi yöntemleri kullanabilirsiniz. Örneğin:
1 2 3 4 5 |
// Belirli bir öğeyi önbellekten kaldırma _cache.Remove("myKey"); // Tüm önbelleği temizleme _cache.Clear(); |
Önbelleğe Alma Stratejileri In-Memory Cache’i kullanırken, hangi verileri ve ne kadar süreyle önbellekte tutmanız gerektiğini dikkatlice düşünmelisiniz. Bazı yaygın stratejiler şunlar olabilir:
Sık kullanılan veritabanı sorgularının sonuçlarını önbellekte saklama.
Önbellekteki verileri belirli bir zaman aşımı süresine (expiration) sahip olarak ayarlama.
Önbelleğe alınmış verileri, veri güncellemeleri veya değişiklikleri algıladığınızda yenileme.