Ö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.
Ö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.