Redis Nedir, Ne İşe Yarar? Önbellek, Oturum ve Kuyruk İçin Kurulum Rehberi
Redis nedir, ne işe yarar? Önbellek, oturum, kuyruk ve hız limiti için bellek içi veri deposu; Ubuntu kurulumu, güvenlik ve WordPress object cache.
Kısa cevap: Redis, verileri disk yerine RAM'de tutan, son derece hızlı, açık kaynaklı bir anahtar-değer (key-value) veri deposudur. Milisaniyenin altında yanıt verdiği için en çok önbellek (cache) olarak kullanılır: sık okunan veritabanı sorgularının sonuçları Redis'te tutulur, böylece site ve uygulamalar çok daha hızlı açılır. Ayrıca kullanıcı oturumları, iş kuyrukları, hız limiti (rate limiting), anlık sıralama tabloları ve mesajlaşma (pub/sub) için de kullanılır. Redis ana veritabanınızın yerine geçmez; onun önünde çalışan hızlı bir katmandır.
Redis Ne İşe Yarar?
| Kullanım | Nasıl çalışır? | Örnek |
|---|---|---|
| Önbellek (cache) | Pahalı sorgu veya sayfa sonucu belirli süre RAM'de tutulur | WooCommerce ürün listesi, API yanıtları |
| Oturum (session) | Kullanıcı oturum bilgisi Redis'te saklanır | Birden fazla sunucuda aynı oturum |
| Kuyruk | Ağır işler sıraya alınır, arka planda işlenir | E-posta gönderimi, görsel işleme (BullMQ, Celery) |
| Hız limiti | IP veya kullanıcı başına istek sayısı sayılır | Giriş denemelerini sınırlama |
| Sıralama / sayaç | Sıralı kümelerle anlık skor tablosu | Oyun liderlik tablosu, en çok okunanlar |
| Pub/Sub | Mesajlar abonelere anında iletilir | Canlı bildirim, sohbet |
Redis Nasıl Çalışır?
Redis verileri bellekte tuttuğu için okuma ve yazma işlemleri disk tabanlı veritabanlarına göre çok daha hızlıdır. Her veriye bir anahtar ile erişilir ve anahtarlara son kullanma süresi (TTL) verilebilir; süresi dolan önbellek kendiliğinden silinir. Basit metin değerlerinin yanında listeler, kümeler, sıralı kümeler, hash'ler ve akışlar (streams) gibi veri yapılarını destekler.
Bellekteki veri, sunucu yeniden başlarsa kaybolmasın diye diske de yazılabilir:
- RDB: Belirli aralıklarla verinin anlık görüntüsü alınır.
- AOF: Her yazma işlemi bir günlüğe eklenir; daha az veri kaybı, biraz daha fazla disk kullanımı.
Önbellek olarak kullanıyorsanız kalıcılık çoğu zaman gerekmez; oturum veya kuyruk için açık tutmak mantıklıdır.
Redis ve Veritabanı: Farkı Ne?
MySQL ve PostgreSQL gibi ilişkisel veritabanları verinin kalıcı ve tutarlı asıl kaynağıdır; karmaşık sorgular ve ilişkiler için tasarlanmıştır. Redis ise hız için tasarlanmış, genellikle geçici veya türetilmiş veriyi tutan bir katmandır. Tipik mimari: uygulama önce Redis'e bakar, veri yoksa veritabanından okur ve sonucu Redis'e yazar.
Ubuntu Sunucuya Redis Kurulumu
sudo apt update
sudo apt install redis-server
sudo systemctl enable --now redis-server
# Çalışıyor mu?
redis-cli ping # PONG dönmeli
Bir anahtar yazıp okumak:
redis-cli SET selam "merhaba" EX 60 # 60 saniye geçerli
redis-cli GET selam
Güvenlik: Redis'i İnternete Açmayın
Redis varsayılan olarak 6379 portunda çalışır ve yalnızca aynı sunucudan erişim için tasarlanmıştır. İnternete açık, şifresiz Redis sunucuları saldırganların sık hedefidir.
/etc/redis/redis.confiçindebind 127.0.0.1 ::1veprotected-mode yesolduğundan emin olun.- Uzaktan erişim gerekiyorsa güçlü bir parola (
requirepassveya ACL kullanıcıları) tanımlayın ve portu güvenlik duvarında yalnızca belirli IP'lere açın (Firewall nedir?). - Docker kullanıyorsanız Redis konteynerinin portunu dışarı yayınlamayın; uygulamayla aynı iç ağda tutun (Docker nedir?).
maxmemoryvemaxmemory-policy allkeys-lruile bellek sınırı koyun; önbellek dolunca en eski kullanılan anahtarlar silinir.
WordPress ve WooCommerce'te Redis
WordPress'te bir "object cache" eklentisiyle (ör. Redis Object Cache) veritabanı sorgularının sonuçları Redis'te tutulur. Özellikle ürün sayısı yüksek WooCommerce mağazalarında yönetim paneli ve dinamik sayfalar belirgin şekilde hızlanır. Bunun için sunucuda Redis'in kurulu olması gerekir; paylaşımlı hostinglerin çoğunda bu mümkün değildir, root erişimli bir VPS/VDS'te birkaç dakikada kurulur.
Redis Lisansı ve Valkey
Redis 2024'te lisans modelini değiştirdi. Bunun üzerine Linux Vakfı çatısında açık kaynaklı bir çatallama olan Valkey doğdu; Redis ile komut düzeyinde uyumludur ve bazı Linux dağıtımları ile bulut sağlayıcıları tarafından sunulur. Sonraki Redis sürümlerine yeniden bir açık kaynak lisans seçeneği eklendi. Kendi sunucunuzda kullanım için ikisi de pratikte aynı şekilde çalışır; lisans koşullarını kullanım şeklinize göre kontrol edin.
Sıkça Sorulan Sorular
Redis nedir?
Redis, verileri RAM'de tutan, çok hızlı, açık kaynaklı bir anahtar-değer veri deposudur. En çok önbellek (cache), oturum yönetimi, iş kuyrukları ve hız limiti için kullanılır.
Redis ne işe yarar?
Sık okunan verileri bellekte tutarak siteleri ve uygulamaları hızlandırır. Ayrıca kullanıcı oturumlarını saklamak, ağır işleri kuyruğa alıp arka planda işlemek, istek sayısını sınırlamak ve anlık bildirimler göndermek için kullanılır.
Redis veritabanının yerine geçer mi?
Genellikle hayır. Redis, MySQL veya PostgreSQL gibi ana veritabanının önünde çalışan hızlı bir katmandır. Asıl ve kalıcı veri veritabanında tutulur; Redis türetilmiş veya geçici veriyi saklar.
Redis WordPress'i hızlandırır mı?
Evet. Redis Object Cache gibi bir eklentiyle veritabanı sorgu sonuçları Redis'te tutulur; özellikle büyük WooCommerce mağazalarında yönetim paneli ve dinamik sayfalar hızlanır. Bunun için sunucuda Redis kurulu olmalıdır.
Redis portu internete açılmalı mı?
Hayır. Redis varsayılan olarak 6379 portunda yalnızca yerel erişim için çalışmalıdır. Uzaktan erişim gerekiyorsa güçlü parola veya ACL tanımlayın ve portu güvenlik duvarında yalnızca belirli IP'lere açın.
Redis İçin Root Erişimli Sunucu
Redis, PostgreSQL ve uygulamanı aynı sunucuda çalıştır. NVMe SSD, tam root erişimi, dakikalar içinde kurulum. En uygun paket: aylık ₺709 (KDV dahil).