Caching 101 – Caching ve Cache Türleri

Caching (Önbellekleme) Nedir?

Kullandığımız uygulamalar, ihtiyaç duydukları verileri ya bir API’den ya da database’den alır.  API’ler ve database’ler de sunucularda konumlandırılırlar. Dolayısıyla uygulamalar, veriye ihtiyaç duyduğu her noktada bu sunuculara istekte bulunur.  Ancak, çok fazla kullanıcısı olan bir uygulama düşünün. Bu uygulamanın data sağlayan sunucularına gelen istek sayısını ve oluşan darboğazı… Bu dar boğaza ilaveten, bir de o veriye ulaşmak için servera gidip veriyi alıp dönülmesine kadar geçen zamanı…

Caching (önbelleğe alma) verileri sunucudan bir kez çektikten sonra ramde tutup, bu verilerin ihtiyaç oldukça sunucuya istekte bulunmadan direkt olarak ram’den alınmasıdır. Bu da yukarıda bahsettiğimiz iki soruna da çözüm getirir.

  • Ram’e ulaşmak ve ramden veri almak, asıl veri kaynağı sunucuya ulaşmaktan çok daha hızlı olacağından caching bize hız/performans kazandırır.
  • Serverlara gidecek istek sayısı düşeceğinden, oluşacak olan darboğazın da önüne geçmemizi sağlar.
Cache ile İlgili Önemli Noktalar

Cachlenen verilerin ön bellekte yani ram’de tutulduğunu söylemiştik. Ancak burada akıllara ilk gelmesi gereken soru şudur. Asıl kaynaktaki yani sunucudaki veri değişikliğe uğradığı zaman, RAM’de tutulan verinin durumu ne olur ? Ramde tutulan veri orjinal kaynaktaki veri değişiminden haberdar mıdır?

Sunucuda tutulan veri illaki bir zaman sonra değişeceğinden sizin ram’de tuttuğunuz verinin belirli aralıklarla temizlenmesi gerekir. Yani cache verinizin bir expire time‘ı olması gerekir. Bu expire time tanımlanmadığı sürece, cachlenmiş veri yani ram’deki veri sunucu kapanana kadar RAM’de kalır.

Veriyi ram’e kaydettikten sonra tekrar bu veriye ulaşabilmek için ramden okumamız gerekecektir. Bu durumda cachelediğimiz verinin bir de unique cache key’i olması gerekir ki tekrar bu veriye ulaşabilelim.

Cache Türleri

Farklı cachle türleri ve kategorizelendirmeleri olmakla birlikte en genel bilinen cache türleri Client side caching, Server side caching ve CDN(Content Delivery Network) cachingdir.

1.Client Side Cache

Client side caching ile web browseriniz sayfanın nasıl göründüğünü hatırlar ve sunucuya websiteyi tekrar yollaması için istekte bulunmaz. Client side caching’te veriler kullanıcının kişisel bilgisayarında tutulur ve yer kaplar. Bu tüm network sürecini aradan çıkararak zaman ve bandwidth tasarrufu sağlatır. Ancak, websiteye ilişkin bilgiler server bazında değiştirilirse sıkıntı başlar çünkü browserınızın tuttuğu website bilgileri artık eski ve güncel değildir. Bu da aslında insanların size belli  aralıklarla cacheninizi temizlemenizi  söylemesinini sebebidir. Cachei temizleyerek sunucudan güncel versiyon talebinde bulunuruz.


2.Server Side Caching

Server side caching ise uygulama tarafından belli bir kaynaktan (database, webservice) çekilen, birden fazla clientla paylaşılan ve değişme ihtimali düşük olan verinin kaynağa (database server, webservice service) tekrar tekrar istekte bulunup çekilmesi yerine, ilk istekten sonra uygulama sunucusunun raminde tutulup, her çağırıldığında uygulama sunucusunun raminden dönmesidir. Yani server-side cachle genellikle expensive tekrar eden farklı clientlara aynı contenti sunan database operasyonlarınında kullanılır ve  data serverda cachlenir.

 

3.Content Delivery Network (CDN) Cache 

CDN önbelleğe alma, daha geniş bir veri depolama biçimidir. CDN önbellekleme ile, genel olarak dağıtılan proxy sunuculara statik web sitesi içeriği eklenir. Bu, dünyanın her yerinden ziyaretçilerin site içeriğinizi daha hızlı indirmesini sağlayarak sitenizin yükleme süresini hızlandırır. CDN önbelleğe alma aynı zamanda web sitesi sahiplerinin maliyetleri azaltmasına yardımcı olur, orijinal sunucudan baskı alır ve odağı ziyaretçilerin yerel olarak verilere erişebileceği küresel olarak bulunan daha küçük yerel sunuculara yerleştirir.

 

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir