
Bu bölümde hazırlamış olduğum bir slide video izleyerek Cache yapıları hakkında bilgi sahibi olacağız
Bu bölümde Redis hakkında bilgi verdiğim slide videomu izleyebilirsiniz.
Bu bölümde Redis Pub / Sub yapısı ile ilgili bilgi verdiğim slide videomu izleyeceksin.
Node.js'i Windows makinemize kuruyoruz. Benzer aşamaları Mac ve Linux için de ilerletebiliriz. Kaynak olarak eklediğim linke tıklayarak indirme sayfasına ulaşabilirsin.
Bu bölümde bir text editör olan Visual Studio Code'u bilgisayarımıza kuruyor olacağız. Visual Studio Code bu bölümde Windows makine üzerine kuruluyor fakat benzer aşamalar, Mac ve Linux için de geçerlidir.
Bu bölümde NoSqlBooster aracını indiriyor olacağız. Bu aracı kullanarak MongoDb'yi yöneteceğiz ve MongoDb üzerinde Query atabiliyor olacağız.
Bu bölümde MongoDb Atlas üzerinden ücretsiz bir remote (uzak) MongoDb sunucusu oluşturuyor olacağız. Bu sunucuyu kullanarak Cache yapısı ile Cacheless yapı arasındaki farkları görüyor olacağız.
Bu bölümde Redis Lab aracılığıyla uzak bir Redis veritabanı oluşturacağız. Bu yapının bağlantı string'ini de oluşturup daha sonraki videoda Redis Insights'a bağlayacağız.
Bu bölümde Redis Insights isimli aracı kuruyoruz. Hemen ardından Redis Labs üzerinden oluşturmuş olduğumuz Remote (uzak) Redis veri tabanımızı Redis Insight'a bağlayacağız.
Bu bölümde örnek bir Express sunucusu proje yapısı hazırlıyor olacağız. Bu yapı sayesinde Express sunucumuzu ayağa kaldıracağız.
Bu bölümde Express sunucumuzu çalıştırmak için giriş kodunu yazıyor olacağız.
Bu bölümde bir takım ara katman yazılımlarını Node.js projemize ekliyoruz. Bu sayede Express sunucusu daha sağlıklı ve doğru bir şekilde çalışıyor olacak.
Bu bölümde Express Router mekanizmasını sunucumuz üzerine ekliyoruz. Bu video ile birlikte sunucu yapımızı tamamlamış bulunuyoruz.
Bu bölümde MongoDb üzerinde Kullanıcılar için bir Schema ve Model oluşturacağız.
Bu bölümde MongoDb üzerinde Mesajlar için bir Schema ve Model oluşturacağız.
Bu bölümde kod üzerinde MongoDb bağlantısını kuracağız. MongoDb bağlantısını kurduktan collection'ların oluşup oluşmadığını kontrol edeceğiz ve collection'ların oluşması için modelleri giriş dosyamıza çağıracağız.
Bu bölüm gist.github.com üzerinde bulunan örnek verileri dizinimize taşıyacağız. Daha sonra da javascript dosyaları aracılığıyla örnek verileri dışarıya atıyor olacağız.
Bu bölümde örnek verileri oluşturacak olan fonksiyonu yazacağız. Daha sonra da bu fonksiyonu mongoose.connect'in hemen ardına ekleyeceğiz ve örnek verilerin oluştuğunu görüyor olacağız.
Bu bölümde Node.js uygulamamız üzerinde Redis bağlantısı gerçekleştiriyoruz ve Redis veri tabanına bağlanıyoruz.
Bu bölümde Redis veri tipleri üzerinde çalışabilmek için Redis router fonksiyonu oluşturuyoruz.
Bu bölümde Redis veri tabanı altında bulunan STRING veri tipini inceliyor olacağız.
Bu bölümde Redis veri tabanı altında bulunan HASH veri tipini inceliyor olacağız.
Bu bölümde Redis veri tabanı altında bulunan LIST veri tipini inceliyor olacağız.
Bu bölümde Redis veri tabanı altında bulunan SET veri tipini inceliyor olacağız.
Bu bölümde Redis veri tabanı altında bulunan ZSET yani SORTED SET veri tipini inceliyor olacağız.
Bu bölümde Redis veri tabanı altında bulunan JSON veri tipini inceliyor olacağız.
Bu bölümde önceki videolarda eklediğimiz veri tiplerinin nasıl silineceğiniz görüyoruz.
Bu bölümde Cache olmadan 50 adet kullanıcıyı route'a MongoDb üzerinden ekleyeceğiz.
Bu bölümde Cache'li halde 50 adet kullanıcıyı route'a Redis ve MongoDb üzerinden ekleyeceğiz. Burada On-demand cache yapısını kullanıyor olacağız.
Bu bölümde Cache'li halde 50 adet kullanıcıyı route'a Redis ve MongoDb üzerinden ekleyeceğiz. Burada On-demand cache yapısını kullanıyor olacağız. On-demand Cache yapısının yanında TTL değeri tanımlayarak absolute time life-cycle seçeneğini kullanıyor olacağız.
Bu bölümde Cache'li halde 50 adet kullanıcıyı route'a Redis ve MongoDb üzerinden ekleyeceğiz. Burada On-demand cache yapısını kullanıyor olacağız. On-demand Cache yapısının yanında TTL değeri tanımlayarak sliding time life-cycle seçeneğini kullanacağız. Sliding time ile verinin silinme zamanını ileriye kaydıracağız.
Bu bölümde Cache'li halde 50'şer olarak kullanıcıları MongoDb'yi kullanarak Redis üzerine ekleyeceğiz. Burada Prepopulation cache yapısını kullanıyor olacağız. Cache verilerini worker üzerinden doldurarak sistemin çalışmasını sağlayacağız. Burada absolute time life-cycle özelliğini kullanıyor olacağız.
Bu bölümde Cache'li halde 50'şer olarak kullanıcıları MongoDb'yi kullanarak Redis üzerine ekleyeceğiz. Burada Prepopulation cache yapısını kullanıyor olacağız. Cache verilerini worker üzerinden doldurarak sistemin çalışmasını sağlayacağız. Bunun yanında periyodik olarak bu işlemi CRONJOB'lar aracılığıyla gerçekleştireceğiz ve verilerin üzerine yazılmasını sağlayacağız.
Burada da RedisJSON'ı bir Cache yapısı olarak kullanıp kullanmayacağımızı göreceğiz. MongoDb ve Redis arasındaki farkı hız farkını görmek için yine bir test çalıştıracağız.
Bu bölümde Redis Pub / Sub yapısını kurmaya başlıyoruz ve kurduğumuz ilk yapı da PUB yani PUBLISH methodunu kullanmak olacak. Fakat kanalı kimse dinlemediği için testi ancak Subscribe'dan sonra yapabileceğiz.
Bu bölümde Redis Pub / Sub yapısı için SUB yani SUBSCRIBE methodunu kullanacağız ve publish ile göndermiş olduğumuz veriyi burada okuyacağız.
Bu bölümde Redis Pub / Sub yapısı için channel'ları yani kanalları okuyacağımız method'u çalıştırıyor olacağız. Bu sayede hangi mesaj kanallarının canlı halde olduğunu yakalayacağız.
Bu bölümde Redis Pub / Sub yapısı için UNSUBSCRIBE methodunu kullanacağız. Bu sayede dinliyor olduğumuz bir kanalı programatik olarak dinlemeyi durduracağız.
Bu bölümde Terminal Chat app'imizi yazabilmek için terminal-kit isimli modülde kullanılabilecek methodları test ediyoruz.
Bu bölümde Chat uygulamamız için terminal-kit isimli modülü kullanarak bir temel atıyoruz.
MongoDb veri tabanından rastgele bir kullanıcı verisini kullanıcının verisi olarak ayarlıyoruz ve bu sayede terminal her başladığında rastgele bir kullanıcı olarak giriş yapıyoruz. Rastgele kullanıcı aracılığıyla mesaj odasına mesaj göndereceğiz.
Chat uygulamasında mesaj gönderebilmek için recursive olarak prompt methodunu ve bunun altında çalışacak listenForMessageSend fonksiyonunu yazıyoruz. Bu sayede her mesaj gönderiminde otomatik olarak tekrardan mesaj gönderimi dinleyen bir yapımız oluyor.
Mesaj göndermek için bir kanal üzerinde çalışacak Redis client'ı ve pub yapısını kuruyoruz.
Bu bölümde gelen mesajları dinlediğimiz bir fonksiyon yazıyoruz. Hali hazırdaki redis client'ını kullanamadığımız için bu client üzerinden bir kopyalama gerçekleştiriyoruz ve bu client ile tekrardan bağlantı sağlayarak mesajları dinliyoruz. Gelen mesajları da doğru formatta terminal üzerinde gösteriyoruz.
Yazdığımız Terminal Chat uygulamasını farklı terminallerde çalıştırarak test ediyoruz.
Remote Dictionary Server (Uzak Sözlük Sunucusu) ifadesinin kısaltması olan Redis hızlı, açık kaynaklı, bellek içi anahtar-değer veri deposudur. Proje, Redis'in ilk geliştiricisi olan Salvatore Sanfilippo'nun, İtalya'daki startup şirketinin ölçeklenebilirliğini iyileştirmek istemesiyle başladı. Daha sonra, şu anda bir veritabanı, önbellek, ileti aracısı ve kuyruk olarak kullanılan Redis'i geliştirdi.
Redis bir milisaniyenin altında yanıt süreleriyle oyun, reklam teknolojisi, finansal hizmetler, sağlık hizmetleri ve IoT gibi sektörlerde gerçek zamanlı uygulamalar için saniyede milyonlarca isteğin işlenmesini sağlıyor. StackOverflow'dan beş yıl art arda "En Sevilen" veritabanı unvanını alan Redis, bugün en popüler açık kaynaklı altyapılardan biridir. Hızlı performansı sayesinde Redis; önbelleğe alma, oturum yönetimi, oyun, lider tabloları, gerçek zamanlı analiz, jeo-uzamsal, yolcu taşıma, sohbet/mesajlaşma, medya akışı ve yayınlama/abonelik uygulamaları için popüler bir seçenektir.
Bu eğitimde
- Bu eğitimde Cache, Redis ve Redis PUB / SUB yapıları hakkındaki detayları
- Express kullanarak Node.js uygulamasına Express alt yapısı eklemeyi
- MongoDb önüne koyacak olduğumuz Redis veri tabanının bütün özelliklerini
- Redis veri tabanındaki veri tiplerini
- Farklı Cache stratejilerini ve Cache Life-cycle methodlarını
- Redis Pub / Sub yapısının nasıl çalıştığını
- Redis Pub / Sub ile örnek bir chat uygulaması yapmayı
öğreneceksin
Genel Konular:
Cache, Redis ve Redis Pub / Sub konularının teorik incelenmesi
Node.js üzerinde Express sunucu oluşturma
Cache yapısı için MongoDb'yi Express sunucusunun arkasına koyma
Redis veri tiplerinin Express sunucusuyla testi
STRING
HASH
LIST
SET
ZSET (Sorted Set)
JSON
Redis ile farklı Cache stratejilerini ve yapılarını kullanımı
On-Demand Cache Kullanımı
On-Demand Cache - Absolute Time Kullanımı
On-Demand Cache - Sliding Time Kullanımı
Prepopulated Cache Kullanımı
Prepopulated Cache + Time kullanımı
RedisJSON ile Cache kullanımı
Redis - Pub / Sub yapısını öğreneceğiz ve Node.js üzerinde test ediyor olacağız
PUB
SUB
CHANNELS
UNSUBSCRIBE,
Redis - Pub / Sub yapısını kullanarak terminal üzerinde çalışacak bir chat uygulaması yapacağız