Redis ileri düzey: akışlar, çoğaltma ve güvenlik
Redis’te kuyruk, sıralama ve olasılıksal sayım kalıplarını kurup sunucuyu izlemeyi ve güvenle yapılandırmayı öğrenirsin.
Seviye 301 · 22 ders · 18 pratik lab
Dersler
Veri yapısı kalıpları
- Listelerle iş kuyruğu: LPUSH, BRPOP ve LMOVE: Üreten ve tüketen iki programı listeyle bağlayıp boşken bekleyen güvenilir bir iş kuyruğu kurabileceksin.
- Kümeler: birleşim, kesişim ve fark: İki kümeyi SUNION, SINTER ve SDIFF ile karşılaştırıp ortak ve farklı üyeleri bulabileceksin.
- Sıralı kümelerle sıralama listeleri ve aralık sorguları: Puana göre ilk N kaydı, bir üyenin sırasını ve belirli puan aralığını ZRANGE ve ZRANK ile sorgulayabileceksin.
- Karma tablolarla oturum ve nesne saklamak: Oturum verisini karma tabloda tutup tek alanı güncellemeyi ve oturuma süre vermeyi öğrenirsin.
- HyperLogLog ve bitmap ile yaklaşık sayım: Milyonlarca benzersiz ziyaretçiyi ya da günlük etkin kullanıcıyı çok az bellekle saymayı öğrenirsin.
- Redis Streams ve tüketici grupları: Olay akışına kayıt ekleyip bir grup işleyicinin işi paylaşarak okumasını ve işlenen kaydı onaylamasını kurabileceksin.
- Kısa görev: bir uygulamanın etkinlik akışı ve sayaçları
Davranış ve kalıplar
- MULTI, EXEC ve WATCH ile işlemler: Birkaç komutu kesintisiz tek blok olarak çalıştırmayı ve başkası değiştirdiyse işlemi iptal etmeyi öğrenirsin.
- Pub/Sub ile mesajlaşma: Bir kanala mesaj yayınlamayı, abone olmayı ve Pub/Sub’ın mesajı saklamadığı sınırını bilerek kullanmayı öğrenirsin.
- Lua betikleriyle atomik işlemler (EVAL): Birkaç adımı tek parça olarak sunucuda çalıştıran küçük bir Lua betiği yazıp yüklemeyi öğrenirsin.
- Hız sınırlama kalıbı: INCR, EXPIRE ve Lua: Bir kullanıcının dakikada kaç istek yapabileceğini sınırlayan sayacı doğru ve yarışsız kurabileceksin.
- Kısa görev: Lua ile stoktan atomik düşüm
Operasyon
- RDB ve AOF kalıcılığını ayarlamak: RDB anlık görüntüsü ile AOF günlüğünü, veri kaybı ve hız dengesine göre seçip ayarlamayı öğrenirsin.
- Çoğaltma ve Sentinel ile yük devretme: Bir yedek Redis kurmayı ve ana sunucu çökünce Sentinel’in yedeği ana yapmasını öğrenirsin.
- Bellek dolunca ne olur: tahliye politikaları ve büyük anahtarlar: maxmemory-policy seçeneklerini bilip en çok bellek yiyen anahtarları MEMORY USAGE ve --bigkeys ile bulabileceksin.
- INFO, SLOWLOG ve gecikme izleme: INFO çıktısını okuyup yavaş komutları SLOWLOG ile bulmayı ve sunucu sağlığını izlemeyi öğrenirsin.
- Kısa görev: bellek ve kalıcılık sağlık denetimi
Güvenlik
- Redis’i internete açık bırakmamak: bind ve protected-mode: Kendi Redis’inin dışarıdan erişilebilir olup olmadığını denetlemeyi ve bind, protected-mode ayarlarıyla kapatmayı öğrenirsin.
- ACL ile kullanıcı ve komut yetkileri: Redis ACL ile her uygulamaya yalnızca kendi anahtar öneki ve gereken komutlar için ayrı hesap verebileceksin.
- Redis’te TLS ile şifreli bağlantı: Redis sunucusunda TLS’yi açıp redis-cli ve uygulamanın şifreli bağlanmasını sağlayabileceksin.
- Tehlikeli komutları sınırlamak ve Redis sertleştirme listesi: FLUSHALL, CONFIG ve DEBUG gibi komutları ACL ile kısıtlayıp tüm güvenlik ayarlarını tek listede denetleyebileceksin.
- Bitirme görevi: açıkta kalmış bir Redis’i güvenli ve dayanıklı hale getir
Pratik lablar
- Etkinlik akışına olay yaz: Kullanıcı eylemlerini XADD ile akışa yaz ve XRANGE ile son olayları oku.
- Tüketici grubuyla işi paylaştır: Sipariş olaylarını iki çalışan arasında tüketici grubuyla paylaştır ve her olayın bir kez işlendiğini doğrula.
- Çöken tüketicinin bekleyen mesajlarını devral: Çöken bir çalışanın onaylamadığı mesajları XPENDING ile bul ve XAUTOCLAIM ile başka çalışana devret.
- Günlük girişleri bit haritasıyla işaretle: Her kullanıcının o gün giriş yapıp yapmadığını bit haritasında tut ve BITCOUNT ile say.
- Fiyat aralığındaki ilanları sıralı kümeyle getir: Emlak ilanlarını fiyata göre sıralı kümede tut ve belirli aralıktaki ilanları sayfalı döndür.
- Haftalık aktif kullanıcıyı bit işlemleriyle hesapla: Yedi günlük bit haritalarını BITOP ile birleştir; her gün gelen ve en az bir gün gelen kullanıcıları say.
- İki komutu MULTI ile birlikte çalıştır: Puan aktarımında bir hesaptan düşüp diğerine eklemeyi MULTI/EXEC ile tek parça yap.
- WATCH ile yarış durumunu engelle: Aynı koltuğu iki kişiye satan rezervasyon kodunu WATCH ile iyimser kilitlemeye çevir ve eşzamanlı test et.
- Pub/Sub ile canlı bildirim yay: Fiyat değişikliklerini kanala yayan ve bağlı istemcilere ileten bir düzen kur; bağlantısı kopanın neyi kaçırdığını göster.
- Basit bir Lua betiği çalıştır: EVAL ile bir sayacı okuyup sınırı aşmıyorsa artıran kısa bir betik yaz.
- API için dakikalık istek sınırı koy: INCR ve EXPIRE'ı tek Lua betiğinde birleştirerek her anahtar için dakikada 60 istek sınırı uygula.
- Stok düşmeyi atomik yap: Flaş indirimde eksi stoğa düşen kodu, sepetteki tüm ürünleri tek adımda kontrol edip düşen bir Lua betiğiyle değiştir.
- Yavaş komutları SLOWLOG'dan çıkar: SLOWLOG kayıtlarını okuyup en yavaş beş komutu ve hangi anahtarları etkilediklerini bul.
- Büyük anahtarları bulup böl: --bigkeys ve MEMORY USAGE ile en büyük anahtarları bul, en büyüğünü parçalara ayırarak bölünmüş yapıya taşı.
- Veri kaybı hedefine göre kalıcılık ayarla: En fazla bir saniyelik veri kaybı hedefi için RDB ve AOF ayarlarını yap, sunucuyu öldürüp kaybı ölç.
- Açıkta duran Redis'i kapat: Tüm arayüzlerde parolasız dinleyen sunucuyu bind ve protected-mode ile yalnızca yerel ağa kapat.
- Uygulama için ACL kullanıcısı tanımla: Uygulamaya yalnızca kendi önekindeki anahtarlara ve gerekli komutlara izin veren bir ACL kullanıcısı aç.
- Redis'i TLS ve sertleştirme listesiyle koru: TLS'i zorunlu kıl, tehlikeli komutları kapat ve sertleştirme listesini madde madde doğrulayan bir betik yaz.
Kurs hakkında
Redis’te kuyruk, sıralama ve olasılıksal sayım kalıplarını kurup sunucuyu izlemeyi ve güvenle yapılandırmayı öğrenirsin.
Ne öğreneceksin
- Veri yapısı kalıpları
- Davranış ve kalıplar
- Operasyon
- Güvenlik
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
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 301 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.