# Önbellekten önce ölç

> Ölçülmeden eklenen bir önbellek, bilinmeyen bir kazanç için alınmış bir doğruluk riskidir.

- Type: playbook
- Published: 2026-06-10
- Topics: scale-and-performance, cache, redis
- Problem: Bir şey yavaş ve önerilen çözüm önüne Redis koymak.
- Context: Bayatlığın gerçek bir maliyeti olduğu ve erişim deseninin henüz bilinmediği okuma yolları.
- Canonical: https://cmlonder.com/tr/playbooks/measure-before-caching

---
## Problem

Bir şey yavaş ve önerilen çözüm önüne Redis koymak. Ölçülmeden eklenen bir
önbellek, bilinmeyen bir kazanç karşılığında alınmış bir doğruluk riski.

## Bağlam

Bayatlığın gerçek bir maliyeti olduğu ve erişim deseninin henüz
anlaşılmadığı okuma yolları.

## Yaklaşım

Herhangi bir karar vermeden önce zamanın gerçekten nereye gittiğini
buluyorum. "Önbellek lazım" denen durumların çoğunda gecikmenin tek bir
kötü planlı sorguda toplandığı ortaya çıkıyor, ve onu düzeltmek ikinci bir
doğruluk kaynağı eklemeden problemi ortadan kaldırıyor.

Zaman gerçekten tekrar eden aynı okumalarda geçiyorsa, inşa etmeden önce
elde edeceğin isabet oranını ölç. Gerçek istek akışından örnek al ve kaç
okumanın önbellekten karşılanacağını say. Yüzde kırk isabet oranı olan bir
önbellek genellikle geçersizleştirme maliyetine değmiyor.

Sonra bayatlık sözleşmesini açıkça belirleyip yazıya döküyorum. Bu veri
kimseye zarar vermeden ne kadar eski olabilir? Kimse cevap veremiyorsa
önbelleğe almak için yeterince bilgin yok demektir.

Ancak bundan sonra önbelleğin nerede duracağına karar veriyorum. Süreç içi
en ucuz ve en basit ama bayat kopya sayısını örnek sayısıyla çarpıyor.
Paylaşımlı önbellekte tek bir doğru var ama kritik yola bir ağ atlaması ve
yeni bir bağımlılık ekleniyor.

## Ödünleşimler

Her önbellek, doğrunun yaşayabileceği ikinci bir yer ve ikisi
uyuşmadığında yeni bir hata biçimi getiriyor. Geçersizleştirme mantığı
zamanla kod tabanına yayılıyor ve ürettiği hatalar aralıklı, tekrar
üretilmesi zor hatalar oluyor.

Bir de kapasite tuzağı var: yeterince iyi çalışan bir önbellek, alttaki
problemi soğuk kaldığı güne kadar gizliyor; o gün soğuk başlangıç sistemi
tam da en kötü anda indiriyor.

## Bu ne zaman işe yaramaz

Bakiye veya stok adedi gibi her zaman güncel olması gereken veride okumayı
önbelleğe almak yanlış katman; çözüm o verinin nasıl hesaplandığında.

Darboğaz yazma tarafındaysa okuma önbelleği hiçbir şey yapmıyor.