Caching Strategies: Redis + CDN + Edge Computing · Ders

Ani Yoğun İstek Akınına Karşı Korunma

Popüler anahtarların süresi dolduğunda önbellek yığılmalarının nasıl oluştuğunu ve bunları önlemek için istek birleştirme, kilitler, erken yeniden hesaplama ve titreşimli TTL değerlerinin nasıl kullanılacağını öğrenin.

4. ders / 413 adım

Ani Yoğun İstek Akınına Karşı Korunma, CoddyKit'te ücretsiz bir Caching Strategies: Redis + CDN + Edge Computing 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, Caching Strategies: Redis + CDN + Edge Computing öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Caching Strategies: Redis + CDN + Edge Computing kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

The Thundering Herd Problem

When a hot cache key expires, every concurrent request misses at once and rushes the origin together. This cache stampede (or thundering herd) can overwhelm the database in an instant.

Why It Is Dangerous

A single popular item serving 10,000 requests/second normally hits the cache. The moment it expires, those 10,000 requests all hit the database simultaneously, often causing a spike that takes the origin down.

Cause: Synchronized Expiry

The root cause is many keys (or many requests on one key) expiring at the same moment. The fix strategies all aim to spread or serialize the resulting recomputation.

Fix 1: Request Coalescing

Let only the first request recompute the value; everyone else waits for that result. This is also called single-flight.

in_flight = {}

def get(key, compute):
    if key in in_flight:
        return 'waiting for in-flight result'
    in_flight[key] = True
    return compute()

print(get('hot', lambda: 'computed once'))

Fix 2: Mutex Lock

Use a distributed lock (e.g. a Redis key with NX) so only one process recomputes. Others briefly serve stale data or retry after a short wait.

lock = None

def acquire_lock(holder):
    global lock
    if lock is None:
        lock = holder
        return True
    return False

print(acquire_lock('worker-1'))
print(acquire_lock('worker-2'))

Fix 3: Jittered TTL

Add randomness to each entry's TTL so they do not all expire together. A base TTL plus random jitter spreads recomputation over time.

import random
base_ttl = 300
jitter = random.randint(0, 60)
print('TTL for this entry:', base_ttl + jitter, 'seconds')

Fix 4: Early Recomputation

Refresh a value before it expires. When an entry is close to its TTL, a background task (or a probabilistic check) recomputes it so it never actually goes cold for users.

Probabilistic Early Expiration

A clever trick: as a key nears expiry, give each request a small, growing probability of recomputing early. One lucky request refreshes the value while others still serve the cached copy.

import random
time_left = 5
beta = 1.0
should_refresh = random.random() < (1 / max(time_left, 1)) * beta
print('Refresh early?', should_refresh)

Fix 5: Serve Stale While Revalidating

Return the expired value immediately while a background job fetches fresh data. Users get a fast (slightly stale) response and the origin sees only one refresh request.

Combining Defenses

Real systems layer these: jittered TTLs to avoid synchronized expiry, plus coalescing or a lock to serialize the inevitable misses, plus stale-while-revalidate for the best user experience.

Watch for Cache Penetration Too

A related issue is penetration: requests for keys that never exist always miss and hit the origin. Cache negative results (or use a bloom filter) so missing keys are also absorbed.

Quick Check

Which technique prevents a cache stampede by ensuring only one request recomputes the value while the rest wait for that result?

Recap

You learned to defend against the thundering herd:

  • Stampedes happen when hot keys expire and many requests miss at once.
  • Coalescing and locks serialize recomputation.
  • Jittered TTLs and early recomputation spread the load.
  • Stale-while-revalidate keeps responses fast.

Combine these to keep your origin safe under load.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Caching Strategies: Redis + CDN + Edge Computing öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
12
Dersler
48

Sıkça Sorulan Sorular

“Ani Yoğun İstek Akınına Karşı Korunma” dersi ücretsiz mi?

Evet — “Ani Yoğun İstek Akınına Karşı Korunma” 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 Caching Strategies: Redis + CDN + Edge Computing kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Caching Strategies: Redis + CDN + Edge Computing kursu toplamda 4 dersten oluşur.

“Ani Yoğun İstek Akınına Karşı Korunma” dersinde ne öğreneceğim?

Popüler anahtarların süresi dolduğunda önbellek yığılmalarının nasıl oluştuğunu ve bunları önlemek için istek birleştirme, kilitler, erken yeniden hesaplama ve titreşimli TTL değerlerinin nasıl kulla… Caching Strategies: Redis + CDN + Edge Computing 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.

Caching Strategies: Redis + CDN + Edge Computing öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Caching Strategies: Redis + CDN + Edge Computing, 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.

“Ani Yoğun İstek Akınına Karşı Korunma” 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 Caching Strategies: Redis + CDN + Edge Computing dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Caching Strategies: Redis + CDN + Edge Computing 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

  1. Yaygın Önbellekleme Örüntüleri
  2. Önbellek Geçersiz Kılma Stratejileri
  3. Önbellek Tahliye Politikaları
  4. Ani Yoğun İstek Akınına Karşı Korunma
← Caching Strategies: Redis + CDN + Edge Computing Sayfasına Dön