Spring Boot'ta Cache Mekanizması Nasıl Çalışır
June 10, 2026
Cache Mantığı Özetle: Eğer bir iş pahalıysa ve cevabı sık değişmiyorsa, cevabı kaydet ve her seferinde işi yeniden yapmak yerine onu tekrar kullan.
Veritabanına gidip para birimleri listesini getiren bir endpoint düşün. Bunlar gün içinde neredeyse hiç değişmez, ama bin istek gelirse aynı sorguyu bin kez çalıştırırsın. Cache, sorguyu bir kez çalıştırıp kaydedilen sonucu geri kalanına sunmanı sağlar.
Spring bunu fazlasıyla kolaylaştırıyor. Bir kez açıyorsun:
@EnableCaching
public class App { }
Sonra metodu işaretliyorsun:
@Cacheable("currencies")
public List<Currency> getCurrencies() {
// bu, cevap cache'te yoksa çalışır
return repository.findAll();
}
İlk çağrı metodu çalıştırır ve sonucu currencies anahtarı altında saklar.
Sonraki her çağrı sadece kaydedilen değeri döndürür — metodun içi hiç çalışmaz
bile.
Herkesin takıldığı yer eski veri. Cache bir kopyadır ve kopyalar eskir. O yüzden alttaki veri değiştiğinde onu temizlemen gerekir:
@CacheEvict(value = "currencies", allEntries = true)
public void refreshCurrencies() { /* ... */ }
Aslında cache'in tüm olayı bu — hız ile tazelik arasında bir takas. sadece hem pahalı hem de az değişen şeyleri cache'le.