IHS Strategic
Tüm Blog Yazıları
HowTo13 Eylül 2026•2 dk okuma

Redis ile Veri Önbelleğe Alma ve Oturum Yönetimi Rehberi

Redis ile yüksek performanslı veri önbelleğe alma ve dağıtık oturum yönetimi uygulama adımları. Modern dijital strateji ve sistem mimarisi trendleri odaklı teknik rehber.

S

Sistem Yöneticisi

Kıdemli Yazılım Mimarı

Giriş: Neden Redis?

Veritabanı darboğazları modern web uygulamalarında en büyük gecikme kaynağıdır. Redis, bellek içi (in-memory) veri yapısı sunucusu olarak milisaniye altı gecikme süreleriyle çalışır. Yüksek trafikli sistemlerde ölçeklenebilirlik sağlamak için vazgeçilmezdir.

Dijital Strateji ve Mimari Trendler

Güncel bulut ve mikroservis mimarilerinde merkezi oturum ve veri önbellekleme standart hale geldi. Modern dijital strateji gereksinimleri, kullanıcı deneyimini doğrudan etkileyen sayfa yükleme hızlarına odaklanır. Veritabanı yükünü %80'e kadar azaltan önbellekleme çözümleri, maliyet ve hız optimizasyonunun temel trendleri arasındadır. Bu rehber, Redis kurulumundan güvenli oturum yönetimine kadar olan adımları kapsar.

Adım 1: Cache-Aside (Lazy Loading) Deseni Uygulama

En yaygın önbelleğe alma stratejisi Cache-Aside desenidir. Uygulama önce Redis'e bakar; veri yoksa ana veritabanından çeker ve Redis'e yazar.

// Cache-Aside Akışı async function getUser(id) { const cached = await redis.get(`user:${id}`); if (cached) return JSON.parse(cached); const user = await db.users.findById(id); if (user) { await redis.setex(`user:${id}`, 3600, JSON.stringify(user)); } return user; }

Kritik nokta: Veri güncellendiğinde ilgili anahtarı geçersiz kılmak (invalidate) veya güncellemek gerekir.

Adım 2: TTL ve Bellek Tahliye (Eviction) Politikaları

Bellek sınırlıdır. Süresiz anahtar bırakmak bellek taşmasına (OOM) yol açar.

  • TTL (Time To Live): Her anahtara mutlaka yaşam süresi tanımlayın (EXPIRE veya SETEX).
  • maxmemory-policy: Bellek dolduğunda hangi verinin silineceğini belirleyin. Önbellek için allkeys-lru veya volatile-lru idealdir.

Adım 3: Redis ile Dağıtık Oturum (Session) Yönetimi

Mikroservis veya birden çok instance arkasındaki yük dengeleyicilerde (Load Balancer) sunucu bağımsız oturum gerekir. Oturum verisi Redis üzerinde merkezi tutulur.

Oturum Yaşam Döngüsü

  1. Kullanıcı giriş yapar; backend benzersiz bir Session ID (UUID) üretir.
  2. Kullanıcı yetki ve profil verisi Redis'e JSON/Hash olarak yazılır: SET session:UUID_DEGERI payload EX 86400.
  3. Session ID, istemciye HTTP-Only cookie olarak iletilir.
  4. Sonraki isteklerde cookie içindeki ID ile Redis'ten doğrulama yapılır.
  5. Çıkış yapıldığında anahtar doğrudan silinir: DEL session:UUID_DEGERI.
Güvenlik Uyarısı: Session ID tahmin edilemez olmalıdır (kriptografik rastgelelik). Redis bağlantısında TLS ve güçlü parola (ACL) zorunludur.

Adım 4: Veri Bütünlüğü ve Yaygın Hatalardan Kaçınma

  • Cache Stampede / Dogpiling: Çok okunan bir anahtarın TTL süresi bittiğinde yüzlerce istek aynı anda veritabanına vurur. Çözüm: Mutex/Lock kullanarak sadece ilk isteğin veritabanına gitmesini sağlamak veya probablistik erken yenileme (XFetch).
  • Büyük Değerler (BigKeys): Tek bir anahtarda megabaytlarca veri tutmayın. Redis tek iş parçacıklı (single-threaded) çalıştığı için I/O bloklanır.
  • Gereksiz Veri Serileştirme: Karmaşık objeler yerine ihtiyaç duyulan alanları HSET / HGET ile yönetin.

Özet Kontrol Listesi

Sisteminizi canlıya almadan önce doğrulayın:

  • Tüm önbellek anahtarlarında TTL tanımlı mı?
  • Redis bellek sınırı ve tahliye politikası ayarlandı mı?
  • Oturum çerezleri Secure ve HttpOnly bayraklarına sahip mi?
  • Bağlantı havuzu (connection pool) düzgün yapılandırıldı mı?