Önbellek Nedir? Tanımı, Nasıl Çalışır ve Kullanım Alanları

Önbellek (Cache), bilgisayar sistemlerinde sık erişilen verileri daha hızlı bir ortamda geçici olarak depolayan mekanizmadır. İş belleği ile ana bellek arasında, web tarayıcısı ile sunucu arasında, hatta CPU'nun içinde bile çalışan bu sistem, veri çağırma süresini dramatik şekilde kısaltır.

5 dk okuma
Önbellek

Önbellek (Cache), bilgisayar sistemlerinde sık erişilen verileri daha hızlı bir ortamda geçici olarak depolayan mekanizmadır. İş belleği ile ana bellek arasında, web tarayıcısı ile sunucu arasında, hatta CPU'nun içinde bile çalışan bu sistem, veri çağırma süresini dramatik şekilde kısaltır. İşletim sistemi, web sitesi, mobil uygulama, veri tabanı—hemen hemen tüm yazılım teknolojileri önbelleği kullanarak daha hızlı performans elde eder.

Önbellek Nasıl Çalışır?

Önbellek mantığı basit ancak etkilidir. Bir kullanıcı veya sistem bir veri talebinde bulunduğunda, sistem iki seçeneğe sahiptir:

  • Verileri doğrudan kaynaktan çek: Orijinal veri deposundan (hard disk, veritabanı, internet sunucusu) alınır—yavaştır.
  • Verileri önbellekten çek: Daha yakın ve hızlı hafızadan alınır—çok daha hızlıdır.

Sistem ilk kez veriye eriştiğinde, o veriyi önbelleğe "yazma" (write) işlemi gerçekleştirir. Sonraki isteklerde aynı veri, eğer hala önbellekte varsa, oradan doğrudan sunulur. Bu işleme "cache hit" (isabet) denir. Eğer veri silinmişse veya süresi dolmuşsa, yeniden kaynaktan alınır—buna "cache miss" (ıskı) denir.

"Hızlı erişim için yakında sakla" — Bilgisayar Mimarisi Prensibi

Önbellek Türleri

Önbellek Türü Nerede Bulunur Hız Kapasite Kullanım Alanı
CPU Cache (L1, L2, L3) İşlemcinin içinde En hızlı KilobaytMegabyt Talimat, işlem sonucu
RAM (İş Belleği) Bilgisayarın belleğinde Çok hızlı Gigabyt Açık uygulamalar, işler
Browser Cache Tarayıcı klasörü Hızlı Megabyt-Gigabyt Web sayfaları, görseller, CSS, JS
Disk Cache Sabit disk bölümü Orta Gigabyt Dosya sistemi, veritabanı
CDN Cache Dünya çapında sunucular Hızlı (coğrafisel) Terabyt Statik içerik, medya dağıtımı
Database Cache Veritabanı yazılımı Orta-Hızlı Gigabyt Sıkça sorgulanan veriler
API/Query Cache Yazılım belleği Çok hızlı Değişken Tekrarlayan istekler

Önbelleğin Avantajları

  • Hız artışı: Verilere saniyeler yerine milisaniyeler içinde ulaşılır.
  • Bant genişliği tasarrufu: Aynı veri tekrar indirimi olmaz, internet kullanımı azalır.
  • Sunucu yükünü düşürme: Aynı sorguya binlerce kez yanıt verilmez.
  • Elektrik tasarrufu: Kaynağa daha az erişim = daha az güç tüketimi.
  • Daha iyi kullanıcı deneyimi: Web sayfaları, uygulamalar daha hızlı açılır.
  • Sistem esnekliği: Sunucu geçici olarak offline olsa bile, önbellekteki veriler kullanılabilir (offline modu).

Önbelleğin Dezavantajları

  • Eski veri sorunu (Stale Cache): Kaynakta güncellenmiş, ama önbellekte eski bilgi kalırsa yanlış bilgi sunulur.
  • Depolama sınırlaması: Sınırlı hafızada ne var ne yok kararı vermek zordur.
  • Karmaşık geçersiz kılma (Invalidation): "Cache invalidation is one of the hardest problems in computer science" — eski veriyi ne zaman sileceksiniz?
  • Güvenlik riski: Hassas veriler (şifre, kişisel bilgi) tarayıcı önbelleğinde açık kalabilir.
  • Yönetim maliyeti: Önbellek stratejisini tasarlamak ve izlemek teknik çaba gerektirir.

Önbellek Nerede Kullanılır?

1. Web Tarayıcıları

Chrome, Firefox, Safari gibi tarayıcılar, ziyaret edilen web sayfalarını, görselleri, CSS ve JavaScript dosyalarını bilgisayarınızda depolaması. Aynı siteyi tekrar ziyaret ettiğinizde sayfa çok daha hızlı açılır.

2. Web Sunucuları

WordPress, Node.js, PHP siteleri veritabanı sorgularını önbelleklerinde tutarak, her kullanıcı isteğinde veritabanına gitmek zorunda kalmazlar. Örneğin, blog yazısı 1000 kişi okudu—yazar bilgileri 1000 kez değil, bir kez sorgulanır.

3. İçerik Dağıtım Ağı (CDN)

Cloudflare, Akamai gibi hizmetler dünyanın çeşitli noktalarında sunucular tutarak resim, video, CSS dosyalarını kullanıcılara en yakın sunucudan sunarlar.

4. Mobil Uygulamalar

Instagram, Spotify, Netflix gibi uygulamalar, indirilen müzik/video/görselleri cihazda tutarak internet olmasa bile açılmasını sağlarlar.

5. İşletim Sistemleri

Windows, macOS, Linux sık kullanılan dosya ve klasörleri RAM'de tutar, böylece sabit diskten daha hızlı erişilir.

6. Veritabanları

PostgreSQL, MySQL, MongoDB gibi veritabanları en sık sorgulanan veri setlerini belleğinde tutarlar.

Önbellek Stratejileri

Veri büyüdükçe tüm verileri önbellekte tutmak imkansız olur. Bu durumda hangi veriyi saklayıp hangisini sileceksiniz? Bunun için algoritmalar kullanılır:

  • LRU (Least Recently Used): En uzun süre kullanılmayan veri silinir.
  • FIFO (First In First Out): En eski veri silinir.
  • LFU (Least Frequently Used): En az kullanılan veri silinir.
  • TTL (Time To Live): Belirli bir süre sonra otomatik silinir (örn: 1 saat).

Tarihçesi

Önbellek kavramı 1960'larda bilgisayar mimarisinde ortaya çıkmıştır. İlk olarak CPU ve ana bellek arasında hız farkını kapatmak için tasarlanmıştır. 1990'ların sonunda web teknolojisinin yükselişiyle, tarayıcı önbelleği ve web sunucu önbelleği standart hale gelmiştir. Bugün, bulut bilişim ve büyük veri döneminde, önbellek mimarisi (Redis, Memcached gibi) ayrı bir disiplin haline gelmiştir.

Önbellek Temizleme (Cache Clearing)

Bazen eski veri sorununu çözmek için veya depolama alanı açmak için önbelleği temizlemek gerekir:

  • Browser Cache Temizle: Tarayıcı ayarlarından Cookies, Cached Images and Files silinir.
  • DNS Cache Temizle: Windows: ipconfig /flushdns, macOS: sudo dscacheutil -flushcache
  • Server Cache Temizle: WordPress: eklenti panelinden, Node.js: redis-cli FLUSHALL komutu.
Önbellek temizlemek bana nasıl fayda sağlar?+
Önbelleği temizlemek, depolama alanı açar, çalışmayan eski bağlantıları kaldırır ve mahremiyet korur. Web sitesi güncellemesinden sonra yeni sürümü görmek için tarayıcı önbelleğini temizlemelisiniz.
Cache miss ve cache hit arasındaki fark nedir?+
Cache hit, istenen veri önbellekte bulunduğunda çok hızlı bir şekilde sunuluştur. Cache miss, veri önbellekte yoksa kaynaktan alınması gerektiğini ve daha yavaş olduğunu ifade eder.
CPU cache, RAM ve sabit disk arasında hız farkı var mıdır?+
Evet, büyük fark vardır. CPU cache nanosaniye, RAM mikrosaniye, sabit disk milisaniye cinsinden veri sunmaktadır. Bu nedenle hızlı erişim için veri hiyerarşik olarak saklanır.

O harfindeki diğer terimler