EMZETT.
Giriş yap

Önbellekleme (caching)

Kısaca: Gelecekteki erişimi hızlandırmak için verileri geçici olarak bir önbellekte saklama süreci.

Biraz daha ayrıntılı: Önbellekleme stratejileri, bir önbelleğin ne kadar süre (TTL) ve nasıl güncellendiği konusunda farklılaşır — örn. özgün veri değiştiğinde “önbellek geçersiz kılma” (cache invalidation) veya eskimiş verinin arka planda yeniden yüklenirken kısa süre daha teslim edildiği “stale-while-revalidate”.

Ayrıntılı

Pratikte yaygın önbellekleme stratejileri:

  • Önbellek geçersiz kılma (cache invalidation): özgün veri değiştiğinde ilgili önbellek girdisi etkin olarak silinir veya üzerine yazılır — kesin, ama uygulaması zahmetli (“bilgisayar biliminde yalnızca iki zor sorun vardır: önbellek geçersiz kılma ve şeyleri adlandırma”).
  • TTL tabanlı sona erme: girdiler, verinin gerçekten değişip değişmediğine bakmadan sabit bir süre sonra basitçe sona erer (bkz. TTL) — basit ama kesin değil (ya çok kısa olur ve önbellek pek işe yaramaz ya da çok uzun olur ve kullanıcılar eskimiş veri görür).
  • Stale-while-revalidate: süresi dolmuş bir önbellek girdisi bir kez daha teslim edilirken arka planda paralel olarak yeniden yüklenir — kullanıcılar yavaş bir istek fark etmez, bunun bedeli kısa süreli biraz eskimiş veridir.
  • Önbellek etiketleri: girdiler anahtar sözcüklerle etiketlenir; böylece örneğin belirli bir ürün değiştiğinde, tüm önbelleği temizlemeden etkilenen tüm girdiler hedefli olarak bir kerede geçersiz kılınabilir.

Next.js dahili olarak bu stratejilerin birkaçını aynı anda kullanır (yönlendirici önbelleği, veri önbelleği, tam rota önbelleği) — hangisinin geçerli olduğu belirli rotaya ve kullanılan fetch seçeneklerine bağlıdır.

Ayrıca bak: Önbellekler, TTL