Redis Önbellek Aşırı Yüklenmesi Veritabanını Çökertti
Redis veritabanımızı kurtardı. Ta ki onu çökertene kadar.
Ne oldu:
- Trafik patlaması: saniyede 50 bin istek
- Redis %100 CPU'ya ulaştı
- Önbellek isabet etmeme (cache miss) oranları artmaya başladı
- Tüm 50 bin istek doğrudan veritabanına gitti
- Veritabanı 30 saniye içinde çöktü
Asıl sorun:
Devre kesicimiz yoktu. Redis zorlandığında, zarif bir şekilde durumu idare etmek yerine, Redis'in kaldıramadığı her şeyi veritabanına yığdık.
Çözüm:
- Devre kesici deseni: Redis yavaşsa, eski veri döndür veya hata ver—veritabanına gitme
- Yatay ölçekleme için Redis Cluster
- Zaman aşımlı bağlantı havuzu (connection pooling)
- Kapasiteye yaklaşırken yük atma (load shedding)
Ders: Önbelleğiniz sadece bir performans optimizasyonu değildir. Kritik bir bileşendir. Başarısız olduğunda, veritabanınızı yok etmeyi içermeyen bir plana ihtiyacınız var.