İçeriğe geç

Önbellek

Sık istenen veya üretilmesi pahalı bir yanıtın kopyasını kısa süreliğine saklayarak tekrar eden sorguları hızlandıran katmandır. Süre ve anahtar kuralları baştan planlanmazsa eski ya da başka bir kişiye ait bilgi gösterebilir.

Cache · TTL · Geçici sonuç saklama

Bağlantılar · 2 dk okuma · Güncelleme:

Tüm kavramlar

Önbellek nedir?

Önbellek, bir bilginin asıl kaynaktan her seferinde okunmasını azaltmak için kopyasını daha hızlı erişilen bir yerde geçici olarak tutan yapıdır. Her kayıt bir anahtarla aranır ve belirli bir yaşam süresine sahiptir. Kaynaktaki veri değişirse kopya bir süre eski kalabilir; bu yüzden süre, geçersiz kılma ve yenileme kuralları bilgi türüne göre seçilir. Aranan kayıt bulunursa isabet, bulunamayıp kaynaktan alınırsa kaçırma olarak adlandırılır.

Süre seçimi ve bayatlama riski

İşletmenin ilk sorusu, bir bilginin ne kadar sık değiştiğidir. Fiyat, koltuk durumu veya randevu saati gibi hızlı değişen verilerde süre uzun tutulursa müşteri bir süre önce doğru olan ama artık geçersiz bir değeri görebilir. Çalışma saatleri, şube adresi veya hizmet listesi gibi haftalarca değişmeyen bilgilerde süre uzatılabilir. Önemli olan, her süreyi bilgi türüne göre ayrı ve yazılı biçimde belirlemektir.

Süre dolduğunda kayıt düşer ve sonraki istek asıl kaynaktan okunur. Süre uzadıkça kaynağa giden yük azalır, ancak bayatlama riski artar. Başarısız bir örnek: bir kafe menüsünde ürün tükendi bilgisi bir saatlik önbellekte kaldığında müşteri tükenmiş ürün için sipariş vermeye çalışabilir. Bu nedenle süre kararıyla birlikte, değişiklik olduğunda kaydı geçersiz kılma adımı da tanımlanmalıdır.

Anahtar yapısı ve kişisel veri ayrımı

Anahtar, aynı sorgunun farklı sonuçlarını birbirinden ayıran kimliktir. Şube, dil, para birimi, müşteri türü veya tarih aralığı sonucu değiştiriyorsa anahtara eklenmelidir. Eklenmeyen bir alan yüzünden yanlış dilde veya yanlış şubenin bilgisi dönebilir. Anahtar kuralları yazılı bir tabloda tutulmalı ve her yeni alan için örnek sorgularla kontrol edilmelidir.

Kişiye özel veriler ortak kayda konmamalıdır. Sepet, adres, randevu geçmişi veya başvuru durumu gibi bilgiler yalnızca ilgili kişinin erişebildiği anahtarla saklanmalıdır. Anahtar hatası en ağır sonucu bu alanda doğurur, çünkü bir kişinin bilgisi başka bir kişiye gösterilebilir. Bu nedenle kişisel veri alanlarında önbellek kullanımı ekip tarafından ayrıca onaylanmadan açılmamalıdır.

Temsili işletme örneği

Temsili örnek: Bir dil kursu merkezinin web sitesinde kurs takvimi ve kontenjan bilgisi bulunuyor. Takvim haftada bir değiştiği için 24 saatlik süre seçilebilir. Kontenjan ise 5 dakikadan kısa süreyle önbelleğe alınır ve kayıt formu gönderilmeden önce asıl kaynaktan yeniden okunur. Şube kodu anahtara eklenmezse İstanbul şubesinin takvimi Ankara sayfasında görünebilir; bu nedenle anahtarda şube kodu zorunlu tutulur.

Önbellekli yanıt ile doğrudan kaynak sorgusu

ÖlçütÖnbellekli yanıtDoğrudan kaynak sorgusu
Yanıt süresiGenellikle kısa; geçerli kayıt varsa kaynağa gidilmezKaynağın anlık yüküne ve yanıt süresine bağlıdır
GüncellikSüre dolana kadar eski kalabilirKaynaktaki en son değer okunur
Kaynak yüküİstek sayısı arttıkça azalırİstek sayısı arttıkça birlikte artar

Sık karıştırılan nokta

Yaygın yanlış düşünce: Önbellekteki veri hızlı geldiği için doğrudur ve tekrar kontrol gerekmez. Düzeltme: Önbellek bir kopyadır ve kaynak bu arada değişmiş olabilir. Ödeme, kayıt onayı veya kontenjan kesinleştirme gibi kritik adımlarda asıl kaynaktan doğrulama yapılmalıdır.

Uygulamada dikkat edilecekler

  1. Her veri türü için süreyi ve bu süreyi onaylayan kişiyi tek bir listede yazın; hızlı değişen bilgilerde süreyi kısa tutun.
  2. Anahtar tablosunda şube, dil, para birimi ve müşteri türü alanlarının bulunduğunu örnek sorgularla kontrol edin.
  3. Kişisel verileri ortak kayıtta tutmayın ve bu alanların yalnızca ilgili kullanıcı kapsamında okunabildiğini test edin.
  4. Yanıtta bilginin son güncelleme zamanını gösterin ve kritik işlemlerden önce asıl kaynaktan yeniden okuma adımını zorunlu hale getirin.

Sık sorulan sorular

Hangi bilgiler önbellekte tutulmamalı?

Ödeme sonucu, sipariş durumu, bakiye ve kişisel hesap bilgisi gibi bayat kopyanın zarar verebileceği veriler kısa süreli bile olsa ortak kayıtta tutulmamalıdır. Bu alanlarda karar, süre uzunluğundan çok doğrulama adımına bağlıdır.

Önbellek süresini nasıl seçmeliyim?

Bilginin değişme sıklığına, yanlış bilginin doğurabileceği zarara ve kaynağın yük kapasitesine bakın. Bu üç ölçütü yazılı tutup düzenli aralıklarla gözden geçirmek, tek bir süreyi kalıcı kabul etmekten daha güvenlidir.

Teknik kaynak

aws.amazon.com · Önbellek

Teknik tanım için birincil kaynağa başvurulmuştur. İşletme senaryosu açıklama amacıyla hazırlanmış temsili bir örnektir.

İlgili kavramlar