Makale Başlıkları
- Redis Nasıl Çalışır? Bellek İçi Olmak Ne Demek?
- Redis'in Desteklediği Veri Yapıları
- RDB ve AOF: Bellekteki Veri Kalıcı Olur mu?
- Redis Gerçekte Nerede İşe Yarar?
- Redis Lisansı 2024-2025: BSD'den SSPL'ye, Oradan AGPL'ye
- Redis 8 ve Yapay Zekâ: Vektör Setleri
- Redis ile Memcached Arasındaki Fark
- Redis Kurarken Dikkat Edilmesi Gerekenler
- Redis için Hangi Sunucu Altyapısına İhtiyaç Var?
- Sıkça Sorulan Sorular
Kisaca
Redis, verileri diskte degil dogrudan RAM’de tutan acik kaynak bir veri yapisi sunucusudur; cogu zaman asil veritabaninin onunde onbellek katmani olarak calisip yavas sorgulari hizlandirir. String, list, set, sorted set, hash ve stream gibi zengin veri tipleri sunar, RDB ve AOF ile kaliciligi saglar. En cok onbellekleme, oturum yonetimi, hiz sinirlama ve gercek zamanli mesajlasmada kullanilir.
- Bellek ici calistigi icin kayitlari mikrosaniye duzeyinde doner; tek is parcacikli yapisi yaris durumu sorunlarini azaltir.
- Kalicilik icin RDB anlik goruntusu ve AOF gunlugu birlikte kullanilabilir; saf onbellekte kaliciligi kapatmak da gecerli bir tercih.
- WordPress’te Redis Object Cache eklentisi tekrar eden sorgulari bellekte tutarak sayfa uretim suresini dusurur.
- Lisans: Mart 2024’te BSD’den SSPL’ye, Mayis 2025’te Redis 8 ile AGPLv3’e gecti; kendi uygulamaniz icin hala ucretsiz. Valkey ise BSD lisansli bir catallama.
- Kurarken maxmemory + tahliye politikasi, requirepass parolasi ve TTL kullanimi kritik; parolasiz internete acmak en sik yapilan hata.
Redis, verileri diskte değil doğrudan bellekte (RAM) tutan, açık kaynak kodlu bir veri yapısı sunucusudur. Klasik bir veritabanı gibi davranabildiği kadar, önbellek (cache), mesaj kuyruğu ve oturum deposu olarak da çalışır. Tek başına bir disk tabanlı veritabanı yerine çoğu zaman onunla yan yana kullanılır: yavaş kalan sorguları araya girip hızlandırır. İlk sürümünü 2009'da İtalyan geliştirici Salvatore Sanfilippo (takma adıyla antirez) yazdı; bugün dünyanın en çok kullanılan bellek içi veri depolarından biri. Adı "REmote DIctionary Server" ifadesinin kısaltmasıdır, yani uzaktan erişilen bir sözlük sunucusu.
Bu rehberde Redis'in nasıl çalıştığını, hangi veri tiplerini desteklediğini, gerçek hayatta nerelerde işe yaradığını, 2024-2025 döneminde yaşanan lisans değişikliklerini ve bir Redis kurulumunda dikkat edilmesi gereken noktaları, gereksiz teoriye boğmadan, uygulamadan örneklerle anlatıyoruz.
Redis Nasıl Çalışır? Bellek İçi Olmak Ne Demek?
Geleneksel bir veritabanı bir kaydı okumak için diske gider; bu işlem milisaniyeler sürer. Redis ise her şeyi RAM'de tuttuğu için aynı kaydı mikrosaniyeler düzeyinde döner. Aradaki fark teoride birkaç katmış gibi görünse de, saniyede on binlerce isteğin geldiği bir uygulamada bu, "veritabanı kilitlendi" ile "site uçuyor" arasındaki çizgidir.
Redis tek bir komutu işlerken bölünmez (atomik) davranır ve çekirdek işleyişi tek iş parçacığı (single-threaded) üzerine kuruludur. Bu kulağa kısıtlayıcı gelse de aslında Redis'in en güçlü yanlarından biridir: aynı anahtara iki istek aynı anda yazamaz, dolayısıyla yarış durumu (race condition) sorunları büyük ölçüde ortadan kalkar. Modern sürümlerde ağ giriş/çıkışı için ek iş parçacıkları devreye girer, ama komut çalıştırma mantığı sade ve öngörülebilir kalır.
"RAM'de tutuyorsa elektrik kesilince veri uçar mı?" sorusu haklıdır. Redis bunu iki kalıcılık mekanizmasıyla çözer; aşağıda RDB ve AOF başlığında bunlara değiniyoruz.
Redis'in Desteklediği Veri Yapıları
Redis'i basit bir anahtar-değer deposundan ayıran şey, değer tarafında zengin veri yapıları sunmasıdır. Bir anahtarın karşısına yalnızca metin değil; liste, küme ya da sıralı küme de koyabilirsiniz. Doğru yapıyı seçmek, uygulama mantığının büyük kısmını sunucu tarafına taşır.
| Veri Yapısı | Ne İşe Yarar? | Tipik Kullanım |
|---|---|---|
| String | Basit anahtar-değer; metin, sayı ya da serileştirilmiş veri | Önbellek değeri, sayaç, JSON saklama |
| List | Sıralı, tekrar edebilen eleman dizisi | İş kuyruğu, son aktiviteler akışı |
| Set | Tekil, sırasız eleman kümesi | Etiketler, benzersiz ziyaretçi takibi |
| Sorted Set | Her elemana bir puan (score) bağlı sıralı küme | Liderlik tablosu, öncelikli kuyruk |
| Hash | Bir anahtar altında alan-değer çiftleri (mini nesne) | Kullanıcı profili, oturum verisi |
| Stream | Zaman sıralı, tüketici grupları olan veri akışı | Olay günlüğü, mesaj iletim hattı |
| Bitmap / HyperLogLog | Bit düzeyi işlem ve yaklaşık tekil sayım | Günlük aktif kullanıcı, A/B test bayrakları |
Örneğin bir oyun için en yüksek skorları tutmak istediğinizde, Sorted Set tek satırlık bir komutla (ZADD) skoru ekler, ZREVRANGE ile ilk 10 oyuncuyu sıralı döner. Aynı işi ilişkisel bir veritabanında yapmak, her güncellemede yeniden sıralama ve indeks maliyeti demektir. Redis bunu doğası gereği sıralı tuttuğu için maliyet neredeyse yoktur.
RDB ve AOF: Bellekteki Veri Kalıcı Olur mu?
Redis bellek içi çalışsa da verinin kalıcı olması için iki yöntem sunar ve bunları birlikte kullanmanıza izin verir:
- RDB (Redis Database) anlık görüntüsü: Belirli aralıklarla tüm veri kümesinin bir "fotoğrafını" diske yazar. Yedek almak ve felaket kurtarma için idealdir, dosyalar kompakttır; ancak iki anlık görüntü arasındaki saniyelerde yazılan veri, ani çökmede kaybedilebilir.
- AOF (Append Only File): Her yazma komutunu bir günlük dosyasına ekler. Çökme durumunda Redis bu günlüğü baştan oynatarak veriyi geri kurar. Çok daha az veri kaybı sağlar, dosya boyutu RDB'ye göre büyür.
Pratikte yaygın yaklaşım ikisini birlikte açmaktır: hız ve kompakt yedek için RDB, dayanıklılık için AOF. Bir önbellek senaryosunda ise veri zaten asıl veritabanından yeniden üretilebildiği için kalıcılığı tamamen kapatıp Redis'i salt bellek modunda en hızlı haliyle çalıştırmak da geçerli bir tercihtir. Önemli olan, Redis'i ne amaçla kullandığınıza göre seçim yapmaktır.
Redis Gerçekte Nerede İşe Yarar?
1. Önbellekleme (Caching)
Redis'in en yaygın kullanımı budur. Veritabanına giden ağır bir sorgunun sonucunu Redis'e bir süreliğine yazarsınız; bir sonraki istek aynı veriyi diske hiç gitmeden bellekten alır. Buna "cache-aside" deseni denir: uygulama önce Redis'e bakar, yoksa veritabanından çeker ve Redis'e bir TTL (yaşam süresi) ile yazar. Yoğun trafikli bir e-ticaret ürün sayfasında bu, veritabanı yükünü çoğu zaman onda birine indirir.
2. Oturum (Session) Yönetimi
Birden fazla sunucuya yük dağıtan sitelerde kullanıcının oturum bilgisi tek bir sunucuda tutulamaz, çünkü bir sonraki istek başka sunucuya düşebilir. Oturumları Redis'te merkezi olarak tutmak bu sorunu çözer; PHP, Node.js, Python gibi ortamların hepsinde hazır oturum sürücüleri vardır.
3. WordPress ve CMS Hızlandırma
WordPress'te her sayfa yüklemesi veritabanına çok sayıda sorgu gönderir. Redis Object Cache eklentisiyle bu sorguların sonuçları Redis'te tutulur ve tekrar eden istekler veritabanına hiç gitmez. Yüksek trafikli bloglarda ve WooCommerce mağazalarında sayfa üretim süresini gözle görülür biçimde düşürür. WordPress hosting ya da yönetimli bir sunucu ortamında Redis nesne önbelleği kurmak, performans için atılacak en etkili adımlardan biridir.
4. Hız Sınırlama ve Sayaçlar (Rate Limiting)
Bir API'ye dakikada kaç istek atılabileceğini sınırlamak ya da "bu IP son bir saatte kaç kez giriş denedi" gibi sayımları tutmak için Redis'in atomik INCR komutu ve TTL mekanizması mükemmel uyum sağlar. Tek komutla artırırsınız, anahtara süre verirsiniz, süre dolunca sayaç kendiliğinden sıfırlanır.
5. Gerçek Zamanlı Mesajlaşma ve Kuyruklar
Redis'in Pub/Sub ve Stream yapıları, bildirim sistemleri, canlı sohbet ve iş kuyrukları için kullanılır. Bir tarafın yayınladığı mesajı abone olan diğer servisler anında alır; ağır arka plan işleri ise bir kuyruğa atılıp işçiler (worker) tarafından sırayla işlenir.
Redis Lisansı 2024-2025: BSD'den SSPL'ye, Oradan AGPL'ye
Redis'i araştırırken "lisans tartışması" ifadesiyle sık karşılaşırsınız; bu konu son birkaç yılın en çok konuşulan açık kaynak olaylarından biri oldu. Kısaca özetleyelim:
- Mart 2024: Redis Ltd., uzun yıllardır kullanılan izin verici BSD lisansından, daha kısıtlayıcı olan SSPLv1 ve RSALv2 ikili lisans modeline geçti. Bu, bulut sağlayıcılarının Redis'i serbestçe hizmet olarak sunmasını sınırlıyordu ve topluluğun bir kısmında tepki yarattı.
- Nisan 2024: Linux Foundation çatısı altında, Redis 7.2 tabanlı ve BSD lisanslı Valkey adında bir çatallama (fork) duyuruldu. AWS, Google Cloud ve Oracle gibi büyük oyuncuların desteğini hızla aldı.
- Mayıs 2025: Redis yön değiştirdi. Redis 8 sürümüyle birlikte, OSI onaylı gerçek bir açık kaynak lisansı olan AGPLv3 seçeneği eklendi. Bu arada, projenin kurucusu antirez de Kasım 2024'te geliştirici olarak Redis'e geri dönmüştü.
Pratik açıdan ne anlama geliyor? Bir sunucu üzerinde Redis'i kendi uygulamanız için kullanıyorsanız, lisans değişiklikleri sizi neredeyse hiç etkilemez; her iki seçenekte de Redis ücretsizdir ve özgürce kurulabilir. Lisans, esas olarak Redis'i yeniden paketleyip hizmet olarak satan sağlayıcıları ilgilendirir. Yine de hangi sürümü seçeceğinize karar verirken Redis 8 (AGPLv3) ile Valkey arasındaki bu ayrımı bilmek faydalıdır.
Redis 8 ve Yapay Zekâ: Vektör Setleri
Redis 8, daha önce ayrı modüller halinde dağıtılan JSON, zaman serisi ve olasılıksal yapıları (Bloom filtresi, cuckoo filtresi, count-min sketch, top-k, t-digest) tek bir dağıtımda birleştirdi. Sürüm ayrıca komut çalıştırmada ve sorgu işlemede ciddi performans iyileştirmeleri getirdi.
En dikkat çekici yenilik ise vektör setleri (vector sets) oldu. Bizzat antirez tarafından, Sorted Set yapısından ilham alınarak geliştirilen bu tip, yüksek boyutlu vektör verilerini (embedding) saklamak ve benzerlik araması yapmak için tasarlandı. HNSW algoritması sayesinde, semantik arama ve öneri sistemleri gibi yapay zekâ senaryolarında, vektörler arası benzerliği hızlıca bulmanızı sağlar. Bu, Redis'i sadece bir önbellek olmaktan çıkarıp modern AI uygulamalarının altyapısının bir parçası haline getiriyor. (Vektör setleri ilk sürümde beta olarak işaretlenmiştir; davranışı gelecekte değişebilir.)
Redis ile Memcached Arasındaki Fark
Önbellekleme deyince akla gelen diğer araç Memcached'tir. İkisi de bellek içi çalışır, ama farkları seçimi belirler:
| Özellik | Redis | Memcached |
|---|---|---|
| Veri yapıları | String, list, set, hash, sorted set, stream ve daha fazlası | Yalnızca basit anahtar-değer (string) |
| Kalıcılık | Var (RDB + AOF) | Yok, yeniden başlayınca veri uçar |
| Çoğaltma / kümeleme | Replikasyon, Sentinel, Cluster | Sınırlı, dağıtımı istemci tarafında |
| Pub/Sub, script, işlem | Var | Yok |
| En uygun olduğu yer | Zengin mantık, kalıcılık, sıralama gereken her senaryo | Sade ve hacimli düz önbellek |
Genel kural: yalnızca düz bir "anahtar-değer önbelleği" istiyorsanız Memcached yeterli olabilir; ama büyük olasılıkla ileride sıralama, kalıcılık ya da kuyruk ihtiyacınız çıkacağı için çoğu proje doğrudan Redis ile başlar.
Redis Kurarken Dikkat Edilmesi Gerekenler
- Bellek yönetimi: Redis tüm veriyi RAM'de tuttuğundan, sunucunuzun belleği sınırı belirler. maxmemory değerini ve bir tahliye politikası (örneğin allkeys-lru, yani en az kullanılan anahtarları silen kural) ayarlamak, belleğin dolup sunucuyu kilitlemesini önler.
- Güvenlik: Redis varsayılan olarak güçlü kimlik doğrulama ile gelmez. Mutlaka requirepass ile parola tanımlayın, mümkünse yalnızca yerel ağdan ya da belirli IP'lerden erişime izin verin. İnternete açık, parolasız bir Redis, en sık istismar edilen yapılandırma hatalarından biridir.
- TTL kullanımı: Önbellek anahtarlarına yaşam süresi vermek, bayatlamış verinin sonsuza kadar bellekte kalmasını engeller.
- İzleme: INFO ve SLOWLOG komutlarıyla bellek kullanımını ve yavaş komutları düzenli izlemek, sorunları büyümeden yakalamanızı sağlar.
Redis için Hangi Sunucu Altyapısına İhtiyaç Var?
Redis bellek üzerine çalıştığı için, doğru çalışması büyük ölçüde sunucunuzun RAM kapasitesine ve ağ gecikmesine bağlıdır. Paylaşımlı bir hosting ortamında Redis genellikle nesne önbelleği olarak sınırlı kaynakla sunulur; üzerinde tam kontrol istediğinizde ise kendi VPS sunucu ya da bulut sunucu ortamınızda Redis'i kurup yapılandırmanız en sağlıklısıdır.
Alastyr olarak sunucularımızı 2002'den bu yana İzmir'deki kendi veri merkezimizde barındırıyoruz. N+1 yedekli enerji ve soğutma altyapısı, all-flash depolama ve düşük gecikmeli Türkiye lokasyonu sayesinde Redis gibi gecikmeye duyarlı bellek içi servisler stabil çalışır. LiteSpeed ve LSCache ile birleştiğinde, özellikle WordPress ve yoğun veritabanı kullanan uygulamalarda fark gözle görülür biçimde hissedilir. %99.9 çalışma süresi, günlük yedekleme ve 7/24 Türkçe destek, kritik bir önbellek katmanını gönül rahatlığıyla işletmenizi sağlar.
Redis ile uygulamanızı uçuran sunucu mu arıyorsunuz?
Düşük gecikmeli Türkiye lokasyonu, all-flash depolama ve 7/24 Türkçe destek ile bulut sunucu ve VPS çözümlerimizi keşfedin. Redis kurulumu için ihtiyacınız olan tam kontrol sizde.
Sıkça Sorulan Sorular
Redis nedir, ne işe yarar?
Redis, verileri bellekte tutan açık kaynak kodlu bir veri yapısı sunucusudur. En çok önbellekleme, oturum yönetimi, gerçek zamanlı veri işleme, mesaj kuyruğu ve sayaç gibi işlerde kullanılır. Yavaş kalan veritabanı sorgularını araya girerek hızlandırır ve uygulamaların yüksek trafik altında akıcı kalmasını sağlar.
Redis bir veritabanı mı yoksa önbellek mi?
İkisi de olabilir. Redis çoğunlukla asıl veritabanının önünde bir önbellek katmanı olarak kullanılır, ama RDB ve AOF kalıcılık seçenekleri sayesinde kendi başına birincil veri deposu olarak da çalışabilir. Hangi rolde kullanacağınız, kalıcılık ayarlarınızı belirler.
Redis verileri RAM'de tuttuğuna göre elektrik kesilince veri kaybolur mu?
Kalıcılık kapalıysa kaybolur. Ancak Redis, RDB anlık görüntüleri ve AOF günlüğü ile veriyi diske yazabilir. İkisini birlikte açtığınızda, çökme sonrası Redis yeniden başlarken veriyi diskten geri yükler ve veri kaybı en aza iner.
Redis ile Memcached arasındaki fark nedir?
Memcached yalnızca basit anahtar-değer önbelleği sunar ve yeniden başlayınca veriyi kaybeder. Redis ise liste, küme, sıralı küme, hash ve stream gibi zengin veri yapıları, kalıcılık, çoğaltma ve pub/sub desteği sunar. Sıralama, kuyruk ya da kalıcılık gerekiyorsa Redis tercih edilir.
WordPress için Redis kullanmak gerekir mi?
Zorunlu değildir ama yüksek trafikli sitelerde ciddi fark yaratır. Redis Object Cache eklentisi, WordPress'in tekrar eden veritabanı sorgularını bellekte tutarak sayfa üretim süresini düşürür. Özellikle WooCommerce mağazaları ve yoğun bloglar için önerilir.
Redis lisansı değişti mi, hâlâ ücretsiz mi?
Redis, Mart 2024'te BSD'den SSPL ikili lisansına geçti, Mayıs 2025'te ise Redis 8 ile birlikte OSI onaylı AGPLv3 seçeneğini ekledi. Kendi uygulamanız için kurup kullanmak isterseniz Redis hâlâ ücretsizdir. Lisans değişiklikleri esas olarak Redis'i yeniden paketleyip hizmet olarak satan sağlayıcıları ilgilendirir.
Valkey nedir, Redis'in yerini mi alır?
Valkey, 2024 lisans değişikliğinin ardından Linux Foundation çatısı altında Redis 7.2 tabanlı olarak başlatılan, BSD lisanslı bir çatallamadır (fork). AWS, Google Cloud ve Oracle desteğiyle hızla yayıldı. Redis ile büyük ölçüde uyumludur; Redis 8'in AGPLv3'e geçmesiyle iki proje bugün ayrı ama benzer şekilde gelişmeye devam ediyor.
Redis kurmak için kaç GB RAM gerekir?
Net bir alt sınır yoktur; ihtiyaç tamamen sakladığınız veri miktarına bağlıdır. Küçük bir nesne önbelleği birkaç yüz MB ile çalışırken, büyük veri kümeleri için onlarca GB gerekebilir. Önemli olan maxmemory sınırını ve bir tahliye politikası belirleyerek belleğin taşmasını önlemektir.
Redis güvenli midir, internete açabilir miyim?
Redis varsayılan olarak güçlü kimlik doğrulama ile gelmez, bu yüzden internete parolasız açmak çok risklidir. requirepass ile parola tanımlamalı, erişimi yerel ağ ya da belirli IP'lerle sınırlamalı ve mümkünse güvenlik duvarı arkasında tutmalısınız. Doğru yapılandırıldığında güvenle kullanılır.





