Cache
Eş anlamlılar: Önbellek
Cache (önbellek), tekrar tekrar erişilen veriyi hızlı bellekte tutarak gelecekteki isteklerin daha hızlı yanıtlanmasını sağlar. Web'de tarayıcı cache, sunucu cache, CDN cache, uygulama cache, veritabanı cache olmak üzere birden fazla katmanda çalışır.
Cache Nedir?
Cache (önbellek), sık erişilen veriyi geçici olarak hızlı bellekte saklayan ve gelecekteki isteklerin kaynak yerine cache'ten yanıtlanmasını sağlayan sistemdir. Performansı dramatik artırır, kaynak sunucu yükünü azaltır ve kullanıcı deneyimini iyileştirir. Web ekosisteminde birden fazla cache katmanı vardır.
Web'de Cache Katmanları
- Browser Cache: Tarayıcıda yerel saklama (CSS, JS, resim)
- DNS Cache: Domain çözümleme sonuçları
- CDN Cache: Edge sunucularda statik içerik
- Reverse Proxy Cache: Varnish, NGINX cache
- Web Server Cache: LSCache, Apache mod_cache
- Application Cache: Redis, Memcached
- Database Cache: Query cache, buffer pool
- OPcache (PHP): Compile edilmiş bytecode
Cache Control HTTP Başlıkları
Cache-Control: max-age=3600— 1 saat cacheCache-Control: public— CDN ve proxy cache'leyebilirCache-Control: private— Sadece tarayıcıCache-Control: no-cache— Her istekte revalidate etCache-Control: no-store— Cache'lemeCache-Control: immutable— Hash'li URL, hiç değişmeyecekCache-Control: stale-while-revalidate=60— Stale sun, arkaplanda güncelle
Cache Stratejileri
Cache-Aside (Lazy Loading)
Uygulama cache'i kontrol eder, yoksa DB'den çeker ve cache'e yazar.
Write-Through
Yazma işlemi cache ve DB'ye aynı anda yapılır — tutarlılık garantili.
Write-Back (Write-Behind)
Yazma cache'e yapılır, sonra asenkron DB'ye. Hızlı ama veri kaybı riski.
Refresh-Ahead
Süresi dolmadan cache yenilenir — kullanıcı hiç MISS yaşamaz.
Cache Invalidation (Geçersizleştirme)
"Cache invalidation" yazılım mühendisliğinin en zor problemlerinden biridir:
- TTL: Belirli süre sonra otomatik expire
- Purge: Manuel silme
- Versioning: URL değişimi (logo-v2.jpg)
- Event-driven: Veri değiştiğinde tag-based purge
CDN Cache Tag'leri
Modern CDN'ler (Cloudflare, Fastly) tag bazlı invalidation destekler:
Cache-Tag: product-123, category-5
Bir ürün güncellendiğinde: PURGE /products ile sadece o tag'li içerik silinir.
WordPress Cache
- LSCache: LiteSpeed kullanıcıları için ücretsiz
- WP Rocket: Ücretli, en popüler
- W3 Total Cache: Ücretsiz, kapsamlı
- WP Super Cache: Automattic, basit
Cache HIT Oranı
Cache performansı HIT oranı ile ölçülür:
- %90+: Mükemmel
- %70-90: İyi
- %50-70: Orta, iyileştirme gerek
- %50 altı: Kötü, konfig gözden geçir
Cache Sorunları
- Cache Stampede (Thundering Herd): TTL sona erdiğinde tüm istekler origin'e gider
- Cache Miss Storm: Cache temizlendiğinde DB yükü patlar
- Stale Data: Eski veri sunuluyor
- Cookie-based Miss: Session cookie yanlış cache'i bypass eder
MeoHost ve Cache
MeoHost hosting paketleri katmanlı cache mimarisi sunar: Cloudflare edge → LSCache full page → Redis object cache → OPcache PHP bytecode. Bu yığın WordPress TTFB'sini 100ms altına çeker.