Tam sayfaları önbellekleyerek hızlandırma
Response Cache sistemi kurduk. Bu, tüm sayfanın hazır HTML'ini saklıyor. İkinci ziyaretçi gelince sayfa yeniden oluşturulmuyor, hazır hali sunuluyor.
Anasayfa, popüler şarkılar, trendler, keşfet sayfası... Hepsi 15 dakika önbellekte tutuluyor. Binlerce ziyaretçiye aynı sayfa saniyede sunulabiliyor.
Giriş yapmış kullanıcılar için cache devre dışı. Çünkü onların sayfası kişiselleştirilmiş.
Ayarlar > Cache > Response Cache
Ayarlar > Performans > Cache Süresi
Dashboard > Performans > Cache
Ayarlar > Cache > Sayfa Listesi
Sayfa isteği geldiğinde Spatie ResponseCache paketi devreye girer. Middleware katmanında cache kontrolü yapılır ve uygunsa hazır HTML döndürülür.
HTTP GET isteği CacheResponse middleware'ine ulaşır. shouldCache() metodu çağrılır.
CacheProfile class'ı kullanıcı durumunu kontrol eder. Giriş yapmış kullanıcılar için cache devre dışı kalır.
ResponseCacheHasher URL, query string ve header'lardan benzersiz hash oluşturur.
Redis'te responsecache:{hash} key'i aranır. Bulunursa CachedResponse objesi deserialize edilir.
Cache hit durumunda hazır HTML ve header'lar Response objesi olarak döndürülür. Controller çalışmaz.
Miss durumunda sayfa normal render edilir. afterResponse() hook'u ile HTML cache'e yazılır.
Yanıt önbelleği. Tüm sayfa HTML'ini saklayıp tekrar sunma.
İstenen sayfa önbellekte bulundu. Hızlı yanıt.
Sayfa önbellekte yok. Yeniden oluşturulması gerekiyor.
Önbelleği geçersiz kılma. İçerik değişince cache temizleme.