Kategoriler
HOSTING123 BLOG

Redis Nedir? Ne İşe Yarar? ve Nasıl Çalışır?

Redis, “Remote Dictionary Server” ifadesinin kısaltmasıdır. Açık kaynak kodlu, bellek tabanlı (in-memory), anahtar-değer (key-value) veri deposu olarak çalışan bir yazılımdır.

İlk olarak 2009 yılında Salvatore Sanfilippo tarafından geliştirilen Redis, NoSQL veri tabanları kategorisinde yer alır ve genellikle bir veritabanı, önbellek (cache) ya da mesaj kuyruğu (message broker) olarak kullanılır.

Redis’in en büyük avantajlarından biri verileri disk yerine bellekte (RAM) tutmasıdır. Bu sayede çok hızlı okuma ve yazma işlemleri gerçekleştirilir.

Ayrıca Redis sadece düz veriler değil, liste, küme, sıralı küme, hash gibi gelişmiş veri yapılarıyla da çalışabilir.

Hosting123 Premium Hosting planları Redis desteklidir ve kurulumu son derece kolaydır. Redis ile web sitenizin performansını ve gücünü yükselterek kullanıcılarınıza mükemmel bir deneyim sunabilirsiniz.

Redis Ne İşe Yarar?

Redis, bellekte (RAM’de) veri saklayan, yüksek hızlı bir anahtar-değer veri deposudur. Bu özelliği sayesinde, veri tabanlarına yapılan tekrarlayan sorgulara kıyasla çok daha hızlı veri erişimi sağlar.

Redis, sadece basit verileri değil; liste, küme, sıralı küme, hash gibi gelişmiş veri yapılarını da destekler. Bu nedenle önbelleklemeden oturum yönetimine, görev kuyruklarından anlık veri işlemeye kadar birçok alanda tercih edilir.

Redis, veri ile ilgili işlemleri milisaniyeler içinde gerçekleştirdiği için, yüksek trafik alan uygulamalarda performansı önemli ölçüde artırır.

Basit Bir Örnekle Redis Mantığı

Diyelim ki bir haber sitesinde “en çok okunan 5 haber” listesini kullanıcıya her sayfa yenilendiğinde göstermek istiyorsunuz.

Bunu her seferinde veritabanına bağlanıp sorgulamak yerine, bir defa sorguyu yapar, sonucu Redis’e kaydedersiniz. Sonrasında her kullanıcıya bu listeyi doğrudan Redis’ten — yani RAM’den — okutur, böylece hem sunucuya yük bindirmezsiniz hem de kullanıcıya çok daha hızlı bir deneyim sunarsınız.

Redis burada bir “ara bellek” görevi görür; hızlıca erişilen, sık kullanılan bilgileri hazırda tutar.

Temel Çalışma Prensibi

Redis, anahtar-değer (key-value) modeliyle çalışır. Her veri, benzersiz bir anahtarla birlikte saklanır ve bu anahtar aracılığıyla veriye erişilir.

Örneğin, "kullanici_adi" = "helloworld" gibi bir eşleştirme yapılır. Bu sistem sayesinde, bir değere ulaşmak için veri tabanı taranmak zorunda kalmaz; anahtar üzerinden doğrudan ulaşım sağlanır, bu da milisaniyelik erişim anlamına gelir.

In-Memory Depolama

Redis’in hızı, verileri RAM üzerinde saklamasından kaynaklanır. Bellek erişimi diske kıyasla çok daha hızlıdır.

Bu nedenle Redis, genellikle geçici ama hızlı erişilmesi gereken veriler için kullanılır: önbellek verileri, kullanıcı oturumları, skor tabloları, sayaçlar gibi.

Veri Yapıları

Redis, sadece düz veriler değil; aynı zamanda şu gelişmiş veri yapılarını da destekler:

  • String: Temel anahtar-değer çiftleri.
  • List: Sıralı veriler (örneğin görev kuyrukları).
  • Set: Benzersiz elemanlardan oluşan gruplar.
  • Sorted Set: Skora göre sıralanmış setler (örneğin puan tabloları).
  • Hash: JSON benzeri yapı; bir nesnenin alanlarını ve değerlerini saklamak için kullanılır.

Her veri yapısı farklı amaçlarla kullanılır ve Redis bu yapılarla çok hızlı işlemler yapabilir.

Süre Aşımı (TTL) ve Otomatik Silme

Redis’te her veri anahtarına bir TTL (Time To Live) süresi atanabilir. Bu, verinin ne kadar süreyle saklanacağını belirler. Süresi dolan veriler otomatik olarak bellekten silinir.

Bu özellik özellikle önbellekleme uygulamaları için büyük avantaj sağlar, çünkü eski verilerin manuel olarak temizlenmesine gerek kalmaz.

Kalıcılık (Persistence)

Redis temel olarak bellek tabanlı çalışsa da verileri kalıcı hale getirmek için çeşitli yöntemler sunar:

  • RDB (Redis Database File): Belirli aralıklarla anlık görüntüler (snapshot) alır ve diske yazar.
  • AOF (Append Only File): Her komutu bir log dosyasına yazar ve bu dosya üzerinden sistem yeniden başlatıldığında verileri tekrar oluşturur.
  • Hybrid Mode: Her iki yöntemi birden kullanarak daha esnek bir çözüm sunar.

Bu sayede Redis, bellek temelli olmasına rağmen ani sistem kapanmalarında verilerin kaybolmaması için önlem alabilir.

Tek İş Parçacığı (Single Threaded) Yapı

Redis, tek bir iş parçacığı (single-threaded) ile çalışır. Bu, ilk bakışta bir dezavantaj gibi görünse de aslında işin içine kilitlenme (locking), bağlam değiştirme (context switching) gibi performansı düşüren durumlar girmediği için çok daha hızlı çalışmasını sağlar. Yani Redis “tek işi hızlı yap” felsefesiyle çalışır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir