Tüm Sayfalar / 73 - Query Cache
73 / 161
Sorgu Onbellegi

Query Cache

SQL sorgularinin sonuclarini onbellekleme

Biz Ne Yaptik?

Query Cache sistemi kurduk. Ayni sorgu tekrar geldiginde veritabanina gitmeden cache'ten cevap donuyor.

"En populer 100 sarki" sorgusu her dakika binlerce kez atiliyor. Hepsine ayni cevap. Neden her seferinde veritabanini yoralim? 5 dakika cache'le, tek sorguyla binlerce isteği karsila.

Sonuc: Veritabani yuku %75 azaldi. Sorgular 100 kat hizlandi.

%75
DB Yuku Azaldi
97%
Cache Hit Orani
100x
Daha Hizli

Arkada Ne Oluyor?

Cache Akisi

Sorgu
Cache?
HIT!
Anlik

Laravel Remember Deseni

// 5 dakika cache
$popularSongs = Cache::remember(
'popular_songs',
300, // 5 dk
fn() => Song::popular()->limit(100)->get()
);

Onbelleklenen Sorgular

Populer sarkilar
Yeni cikanlar
Tur listeleri
Sanatci listeleri
Onerilen playlistler
Kategori icerikleri

Admin Panelden Ne Görebilirsiniz?

Query Cache Temizle

Ayarlar > Cache > Query Cache

Hit/Miss Orani

Dashboard > Cache > Query Stats

Cache'li Sorgular

Dashboard > Cache > Query List

TTL Ayarlari

Ayarlar > Performans > Cache TTL

Arkaplanda Neler Çalışıyor?

Cache::remember çağrıldığında Laravel önce Redis'te key arar. Bulunursa deserialize edip döner, bulunamazsa closure çalıştırılıp sonuç cache'lenir.

Key Oluşturma

Cache::remember('popular_songs', ...) çağrısı laravel_cache:popular_songs key'ini oluşturur.

Redis GET

RedisStore::get() metodu GET laravel_cache:popular_songs komutunu çalıştırır.

Cache Hit

Veri bulunursa unserialize() ile PHP objesine dönüştürülür. DB'ye sorgu atılmaz, ~0.5ms içinde döner.

Cache Miss

Veri yoksa ikinci parametre olan closure fn() => Song::popular()->get() çalıştırılır.

Redis SETEX

Sonuç serialize() edilip SETEX key ttl value komutuyla Redis'e yazılır.

Cache Invalidation

Şarkı güncellendiğinde Model Observer Cache::forget('popular_songs') çağırır. Key Redis'ten silinir.

Bu Sayfanın Anahtar Terimleri

Query Cache

Sorgu önbelleği. SQL sonuçlarını saklayıp tekrar kullanma.

Cache::remember

Laravel'de cache'ten oku, yoksa hesapla ve kaydet.

Cache Tags

Cache'i gruplandırma. Toplu temizleme imkanı.

Cache Busting

Veri değişince ilgili cache'i geçersiz kılma.

SQL Sorgu Akisi
App
Cache
MySQL
HIT %97
MISS %3
Son Sorgu
HIT
popular_songs cache'ten
12,847
Cache Hit
412
Cache Miss
45ms
DB
0.5ms
Cache