# Önbellek

Adres: https://softwaredictionary.org/tr/terimler/cache
Kategori: Backend ve API'ler
Son güncelleme: 2026-09-30
İngilizcesi: Cache
Okunuşu: keş

Kısaca: Önbellek, sık kullanılan verilerin kopyalarını tutan hızlı ve geçici bir depolama katmanıdır; sonraki istekler yavaş işi tekrarlamadan hızla karşılanır.

## Önbellek (cache) nedir?

Önbellek, bir veritabanı sorgusu, bir API çağrısı ya da işlenmiş bir sayfa gibi yavaş veya maliyetli bir işin sonucunu saklar; böylece aynı veri için gelen sonraki istek neredeyse anında yanıtlanabilir. Önbellekler verileri genellikle bellekte tutar; bellek, bir diskten ya da uzak bir servisten çok daha hızlı okunur. İstenen veri önbellekte bulunduğunda buna cache hit, bulunmadığında cache miss denir ve sistem veriyi asıl kaynağından getirir.

Önbellekleme birçok seviyede gerçekleşir: işlemcinin içindeki CPU önbellekleri, cihazınızdaki tarayıcı önbelleği, dosyaları kullanıcılara yakın saklayan CDN'ler ve bir veritabanının önünde duran Redis ya da Memcached gibi uygulama önbellekleri. Yaygın bir kalıp cache-aside'dır: uygulama önce önbelleğe bakar, ıskalama durumunda veritabanından okur ve sonucu bir sonraki sefer için önbelleğe kaydeder.

Gündelik bir benzetme, her seferinde kilere gitmek yerine en çok kullandığınız baharatları mutfak tezgâhında tutmaktır. Tezgâh alanı sınırlı olduğundan önbellekler eski girdileri, en az yakın zamanda kullanılan (LRU) gibi bir tahliye politikasıyla kaldırır; girdiler de çoğunlukla belirli bir yaşam süresi (TTL) sonunda sona erer.

Önbelleklemenin en zor kısmı geçersiz kılmadır (invalidation): asıl veri değiştikten sonra önbelleğin eski veriyi sunmayı bırakmasını sağlamak. Geliştiriciler bunu kısa TTL'lerle, veri güncellendiğinde önbellek girdilerini silerek ya da bazı verilerin biraz eski kalabileceğini kabul ederek çözer. Önbellek aynı zamanda bir veritabanı değildir, çünkü içeriği her an kaybolabilir; bu yüzden gerçek veri her zaman kalıcı bir yerde durmalıdır.

## Önemli noktalar

- Önbellek, yavaş işi tekrarlamamak için verilerin kopyalarını hızlı depolamada tutar.
- Cache hit saklanan veriyi döndürür; cache miss ise asıl kaynağa başvurur.
- Önbellekler CPU'larda, tarayıcılarda, CDN'lerde ve Redis gibi uygulamalarda bulunur.
- Girdiler LRU gibi tahliye politikalarıyla ya da TTL süresi dolunca kaldırılır.
- Eski verinin geçersiz kılınması, önbelleklemenin başlıca zorluğudur.

## Örnek: Redis ile cache-aside kalıbı

```javascript
// Check the cache first, and fall back to the database on a miss
async function getProduct(id) {
  const key = `product:${id}`;
  const cached = await redis.get(key);
  if (cached) return JSON.parse(cached); // cache hit

  const product = await db.products.findById(id); // cache miss
  await redis.set(key, JSON.stringify(product), { EX: 300 }); // keep for 5 minutes
  return product;
}
```

## Sık sorulan sorular

**Önbellek ile veritabanı arasındaki fark nedir?**

Veritabanı, verileriniz için kalıcı doğruluk kaynağıdır; önbellek ise hız için geçici kopyalar tutar. Önbellekteki veriler her an tahliye edilebilir ya da kaybolabilir, bu nedenle onları veritabanından yeniden oluşturmak her zaman mümkün olmalıdır.

**Cache invalidation ne demektir?**

Cache invalidation, asıl veri değiştiğinde önbellekteki girdileri kaldırmak ya da güncellemektir; böylece kullanıcılar eski sonuçları görmez. Yaygın yaklaşımlar, girdileri TTL ile sona erdirmek ya da veri yazıldığında önbellek anahtarını silmektir.

**Önbelleklemede TTL nedir?**

TTL (time to live, yaşam süresi), bir önbellek girdisinin sona erip yeniden getirilmesi gerekmeden önce ne kadar süre geçerli kaldığını belirtir. Kısa TTL'ler veriyi daha taze tutar; uzun TTL'ler ise daha fazla cache hit sağlar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
