Yazılım
100%

Redis ile In-Memory Caching ve Performans Optimizasyonu

Uygulama yanıt sürelerini milisaniyelere düşürmek için kullanılan Redis bellek içi veri yapısı deposunun mimarisi ve kullanım senaryoları.

Genel Bakış

Redis (Remote Dictionary Server), açık kaynaklı, veriyi bellekte (in-memory) tutan, inanılmaz hızlı bir anahtar-değer (key-value) deposudur. Genellikle veritabanı, önbellek (cache) ve mesaj aracısı (message broker) olarak kullanılır.

Sorun

Modern web uygulamalarında, her kullanıcı isteği için disk tabanlı ilişkisel bir veritabanına (PostgreSQL, MySQL) sorgu atmak sistem performansını ciddi şekilde düşürür. Özellikle aynı verilerin (örneğin popüler ürünler, döviz kurları, oturum bilgileri) sürekli okunması gerektiği durumlarda, veritabanının disk okuma (I/O) sınırları sistemin darboğaza girmesine neden olur.

Çözüm: Veriyi Bellekte Tutmak

Sık erişilen veriler, disk yerine RAM üzerinde çalışan Redis'e kaydedilir. Uygulama veriyi önce Redis'te arar (Cache Hit). Bulamazsa (Cache Miss) ana veritabanına gider, veriyi alır ve bir sonraki istek için Redis'e yazar.

Örnek Redis Kullanımı (Node.js):

const redis = require("redis");
const client = redis.createClient();
await client.connect();

// Veriyi 3600 saniye (1 saat) süreliğine önbelleğe al
await client.setEx("urun_katalogu", 3600, JSON.stringify(data));

Teknik Detaylar

Redis sadece basit string'ler değil; Hash, List, Set, Sorted Set gibi gelişmiş veri yapılarını da destekler. Tek bir thread (Single-threaded) üzerinde çalışır, bu nedenle arka planda bağlam geçişi (context switching) maliyeti olmadan saniyede milyonlarca isteği işleyebilir. Veri kalıcılığını (persistence) sağlamak için belirli aralıklarla RAM'deki veriyi diske yedekleyen RDB (Redis Database) ve her yazma işlemini günlüğe kaydeden AOF (Append Only File) mekanizmalarına sahiptir.

Sonuç

Redis, yüksek trafikli uygulamalarda veritabanı yükünü hafifletmek ve API yanıt sürelerini stabilize etmek için en etkili endüstri standardıdır. Ancak, belleğin pahalı bir kaynak olduğu unutulmamalı ve TTL (Time-To-Live) ayarları doğru yapılandırılmalıdır.

İlgili Wiki'ler

Tümünü Gör