Redis ile uygulama kalıpları
Python uygulamalarında Redis’i önbellek, oturum deposu, sayaç, kuyruk ve sıralama tablosu olarak kullanır; her kalıbın tuzaklarını ve doğru anahtar tasarımını öğrenirsin.
Seviye 201 · 16 ders · 15 pratik lab
Dersler
Önbellek
- Python’dan Redis’e bağlanmak
- Önbellek kenarı (cache-aside) deseni
- Önbelleği geçersiz kılmak
- Önbellek izdihamı ve önlemleri
- Değeri saklama biçimi: JSON, hash, sıkıştırma
- Kısa görev: yavaş bir API’ye önbellek ekle
Durum ve sayaçlar
- Oturum deposu
- Sayaçlar ve basit analitik
- Tekil ziyaretçi saymak
- Dağıtık kilit ve tuzakları
- Kısa görev: Redis’te özellik bayrakları
Kuyruklar ve sıralamalar
- Basit iş kuyruğu
- Sıralı kümeyle gecikmeli işler
- Oyun sıralama tablosu
- Anahtar tasarımı ve ad alanları
- Bitirme görevi: bir bilet satış sitesinin Redis katmanı
Pratik lablar
- Yavaş sorgunun önüne önbellek koy: Python'da ürün detayını önce Redis'te arayan, yoksa veritabanından alıp yazan bir fonksiyon yaz.
- Güncellenen ürünün eski fiyatını göstermeyi bitir: Fiyat güncellenince önbellekte eski değerin kaldığı hatayı bul ve yazma anında geçersiz kılmayı ekle.
- Önbellek çığını önle: Popüler anahtarın süresi dolunca veritabanına yüzlerce sorgu yağdığını göster; kilit ya da erken yenileme ile çöz.
- Nesneyi JSON olarak sakla: Kullanıcı profilini JSON metni olarak yaz, oku ve tek alanı güncellemenin maliyetini gözle.
- JSON ile hash arasında seçim yap: Aynı veriyi JSON ve hash olarak sakla; bellek kullanımını ve kısmi güncelleme hızını karşılaştırıp karar ver.
- Büyük değerleri sıkıştırarak belleği yarıya indir: Büyük rapor önbelleklerini sıkıştırarak sakla, bellek kazancını ve CPU maliyetini ölç.
- Oturumu Redis'te sakla: Küçük bir web uygulamasının oturumlarını süreli hash'lerde tut ve çıkışta silindiğini doğrula.
- Tekil ziyaretçiyi HyperLogLog ile say: Günlük tekil ziyaretçiyi hem küme hem HyperLogLog ile say, bellek ve hata payını karşılaştır.
- Tüm cihazlardan çıkış özelliği ekle: Kullanıcının tüm oturumlarını izleyen bir dizin tut ve tek komutla hepsini sonlandıran özelliği yaz.
- Özellik bayrağını Redis'ten aç kapa: Yeni ödeme ekranını Redis'teki bir bayrakla açıp kapatan kodu yaz ve yeniden başlatmadan dene.
- Aynı işin iki kez çalışmasını kilitle engelle: İki sunucuda aynı anda başlayan fatura işini SET NX PX kilidiyle tekil hale getir.
- Süresi dolan kilidin yol açtığı hatayı düzelt: Uzun süren işin kilidi süresi dolunca başkasının kilidini silen kodu belirteçli kilit ve güvenli serbest bırakmayla düzelt.
- Basit bir iş kuyruğu kur: E-posta gönderim işlerini listeye ekleyen bir üretici ve BRPOP ile alan bir çalışan yaz.
- Gecikmeli işleri sıralı kümeyle zamanla: Hatırlatma işlerini zaman damgasıyla sıralı kümeye koy ve vakti gelenleri kuyruğa taşıyan döngüyü yaz.
- Oyun sıralamasında komşuları göster: Oyuncunun sırasını, üstündeki ve altındaki beş oyuncuyu tek seferde döndüren sıralama servisini yaz.
Kurs hakkında
Python uygulamalarında Redis’i önbellek, oturum deposu, sayaç, kuyruk ve sıralama tablosu olarak kullanır; her kalıbın tuzaklarını ve doğru anahtar tasarımını öğrenirsin.
Ne öğreneceksin
- Önbellek
- Durum ve sayaçlar
- Kuyruklar ve sıralamalar
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.