Önbellek Geçersiz Kılma Düzenleri
Önbellek-yanı, yazma-geçişli ve TTL tabanlı geçersiz kılma stratejilerini uygulayın.
Önbellek Geçersiz Kılma Düzenleri, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
Zor Problem
"Bilgisayar Bilimindeki yalnızca iki zor şey şunlardır: önbelleği geçersiz kılmak ve şeylere ad vermek." — Phil Karlton. Önbelleğe alınmış verilerin ne zaman ve nasıl geçersiz kılınacağını bilmek kritik önem taşır.
TTL Tabanlı Sona Erme (Pasif)
En basit strateji, bir TTL ayarlayıp önbelleğin bu süre boyunca güncelliğini yitirmiş veriler sunabileceğini kabul etmektir. Hafif bir güncellik kaybının kabul edilebilir olduğu durumlarda işe yarar.
<?php
Cache::put("user:1", $user, 300); // expires in 5 minutes automaticallyYazma Sırasında Geçersiz Kılma
Verileri güncellediğinizde ilgili önbellek anahtarını hemen siliniz veya güncelleyiniz.
<?php
function updateUser(int $id, array $data): void {
User::find($id)->update($data);
Cache::forget("user:$id"); // delete cache
// Or re-warm:
Cache::put("user:$id", User::find($id), 300);
}Önbellek Etiketleme
İlgili önbellek girdilerini etiketleyerek tek seferde bütün bir grubu geçersiz kılabilirsiniz; örneğin belirli bir kullanıcıya ait tüm önbellek girdilerini.
<?php
// Store with tags:
Cache::tags(["user:1", "posts"])->put("user:1:recent-posts", $posts, 600);
// Invalidate all "user:1" entries:
Cache::tags("user:1")->flush();Olay Tabanlı Geçersiz Kılma
Laravel'da, bir model kaydedildiğinde veya silindiğinde önbelleği otomatik olarak geçersiz kılmak için Eloquent model olaylarını kullanınız.
<?php
class User extends Model {
protected static function booted(): void {
static::saved(fn($u) => Cache::forget("user:{$u->id}"));
static::deleted(fn($u) => Cache::forget("user:{$u->id}"));
}
}Sürümlemeli Önbellek Yanı
Önbellek anahtarlarına bir sürüm numarası ekleyiniz. Sürümü artırmak, mevcut tüm girdileri silmeden etkili biçimde geçersiz kılar.
<?php
$v = Cache::get("user:version", 1);
$key = "user:{$id}:v{$v}";
// To invalidate: increment the version
Cache::increment("user:version");Olasılıksal Erken Sona Erme (PER)
Önbellek yığılmalarını önlemek için bazı isteklerde, önbelleğin süresi dolmadan kısa süre önce yeniden hesaplayınız. Böylece tüm sunucularda aynı anda sona erme gerçekleşmesi önlenir.
Arka Planda Yenileme
Bir arka plan işi, sık okunan önbellek girdilerini süreleri dolmadan önce yeniden doldurur. Önbellek hiçbir zaman boş kalmaz; okumalar her zaman hızlıdır.
Yeniden Doğrulama Sırasında Eski Veriyi Sunma
Önbelleği arka planda eş zamanlı olarak yenilerken güncelliğini yitirmiş verileri hemen sununuz. Böylece önbellek eksikliği nedeniyle oluşan gecikme artışları ortadan kalkar.
Dağıtık Önbelleği Geçersiz Kılma
Çok sunuculu bir kurulumda, bir sunucunun önbellek anahtarını geçersiz kılması diğer sunucuların yerel önbelleklerini otomatik olarak temizlemez. Geçersiz kılma bildirimlerini yayınlamak için Redis yayınlama/abone olma özelliğini veya paylaşımlı bir depoyu kullanınız.
Önbellek Hiyerarşisi
Önbellekleri katmanlandırınız: dağıtık önbelleğin (Redis) önünde yerel işlem içi önbellek (APCu) kullanınız. Yerel önbellek daha hızlıdır; ancak veriler değiştiğinde tüm örneklerde geçersiz kılınmalıdır.
Özet
Yaygın desenler şunlardır: TTL ile sona erme (basit), yazma sırasında silme (doğru), etiketleme (gruplandırılmış) ve olay tabanlı geçersiz kılma (otomatik). Seçiminizi veri güncelliğine ne kadar güçlü ihtiyaç duyduğunuza ve basitliğe verdiğiniz öneme göre yapınız.
Hızlı Kontrol
Cache::tags()->flush() ne yapar?
Sıkça Sorulan Sorular
“Önbellek Geçersiz Kılma Düzenleri” dersi ücretsiz mi?
Evet — “Önbellek Geçersiz Kılma Düzenleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Önbellek Geçersiz Kılma Düzenleri” dersinde ne öğreneceğim?
Önbellek-yanı, yazma-geçişli ve TTL tabanlı geçersiz kılma stratejilerini uygulayın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Önbellek Geçersiz Kılma Düzenleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- PHP'de Önbellekleme Neden Önemlidir
- PHP Önbellek Arka Ucu Olarak Redis
- Oturum ve Nesne Önbellekleme için Memcached
- Önbellek Geçersiz Kılma Düzenleri