Redis, açık kaynak kodlu, çok hızlı, veri depolama ve işleme odaklı bir anahtar-değer veritabanı sistemidir. İlk olarak 2009 yılında Salvatore Sanfilippo tarafından geliştirilmiştir. Adını Redis’in tersinden almaktadır.
Redis verileri bellekte saklar ve bu sayede veri erişim hızını çok yüksek seviyelere çıkarır. Veriler bellekte tutulduğu için Redis veri erişim, depolama ve işleme işlemlerinde oldukça hızlıdır. Redis verileri bellekte tutarken diskte de periyodik olarak yedekleme yapar. Böylece veri kaybı riski en aza indirgenir.
Redis verileri anahtar-değer çiftleri şeklinde saklar. Her bir veriye bir anahtar atanır ve bu anahtar yardımıyla o veriye kolaylıkla erişilebilir. Redis’te desteklenen veri tipleri string, list, set, zset, hash gibi temel veri yapılarıdır.
Redis sıklıkla veritabanı sistemi olarak tanımlanmasına rağmen aslında bir veritabanı sistemi değildir. Çünkü Redis verileri üzerinde sorgu yapma ve filtreleme gibi işlemler desteklemez. Sadece veri depolama ve çekme işlemlerini hızlı bir şekilde yapabilir.
Redis genellikle önbellek, veri depolama, oturum yönetimi, sıra sistemleri, veri işleme ve benzeri alanlarda kullanılır. Popüler web siteleri ve uygulamalar Redis’i sıklıkla kullanmaktadır.
Örneğin;
-
Facebook, milyonlarca kullanıcısının oturum bilgilerini, kullanıcı profillerini ve diğer verilerini Redis ile saklar.
-
GitHub, kullanıcı profilleri, takip edilen projeler ve diğer metadataları Redis ile depolar.
-
Reddit, kullanıcı oturumlarını, oylamaları ve diğer sosyal verileri Redis ile tutar.
-
Twitter, kullanıcı takipçi listelerini, tweet beğenilerini ve paylaşımları Redis ile saklar.
-
Netflix, kullanıcı izleme geçmişlerini, önerileri ve diğer kullanıcı deneyimlerini Redis ile yönetir.
Redis’in avantajları arasında; yüksek performans, kolay kurulum, çeşitli veri yapıları desteği, çok düşük gecikme süreleri, çoklu istemci desteği, veri yedeklemesi sayılabilir. Dezavantajları ise veri büyüklüğünün bellek kapasitesi ile sınırlı olması ve verilerin sorgulanamamasıdır.
Genel olarak Redis, hızlı veri erişimine, depolamaya ve işlemeye ihtiyaç duyan uygulamalarda tercih edilen bir veri depolama sistemidir. Özellikle önbellek, oturum yönetimi ve veri işleme alanlarında sıklıkla kullanılmaktadır.
Redis nerelerde kullanılır
-
Önbellek Depolama: Web siteleri, uygulamalar sık sorgulanan verileri Redis’te tutarak veri erişim hızını artırır. Örneğin kullanıcı profil bilgileri, sık yapılan sorguların sonuçları vb.
-
Oturum Yönetimi: Bir web sitesine giriş yapan kullanıcıların oturum bilgileri, sepetleri vb. verileri Redis’de saklanır.
-
Veri İşleme: Büyük veri kümeleri üzerinde yapılan işleme, filtreleme, analiz gibi işlemler sırasında geçici veriler Redis’te saklanabilir.
-
Sıra Sistemleri: İşlem yapılması gereken verilerin sırasını tutmak ve işleme koymak için kullanılır.
-
Veritabanı Önbelleği: Veritabanlarının sorgu sonuçlarını önbelleğe almak için kullanılır.
-
Oyun Sunucuları: Oyuncu skorları, can miktarları, eşya bilgileri gibi verileri depolamak için.
-
IoT Uygulamaları: Sensör verilerini toplamak ve depolamak için.
-
Mesaj Kuyrukları: Mesajlaşma uygulamalarında mesajların kuyrukta bekletilmesi için.
-
Dosya Paylaşımı: Dosya indirme istatistiklerini, kullanıcı tercihlerini kaydetmek için.
-
Sosyal Ağ Uygulamaları: Kullanıcı etkileşimlerini, beğenileri, paylaşımları kaydetmek için.
Kısacası veri erişim hızı ve depolama kapasitesi önemli olan her alanda Redis kullanımı yaygındır.
Redis Kurulumu
-
Redis’i indirmek için resmî web sitesinden ilgili işletim sistemine uygun sürümü seçilir.
-
İndirilen dosya çözümlenir ve içeriği bir klasöre aktarılır.
-
Aktarılan klasörün konumuna gidilir.
-
Source kodunun derlenmesi için “make” komutu çalıştırılır.
-
Derleme başarılı olursa çalıştırılabilir dosya oluşur.
-
Oluşan Redis sunucusunun çalıştırılması için “src/redis-server” komutu kullanılır.
-
Varsayılan ayarlarla 6379 portunda çalışmaya başlar.
-
İsteğe bağlı olarak konfigürasyon dosyası düzenlenebilir.
-
Redis-cli kullanılarak sunucuya bağlanıp veri girişi-çıkışı yapılabilir.
-
Windows için hazır derlenmiş paketler de mevcuttur, onlar kullanılabilir.
-
Güvenlik duvarı ayarlarında 6379 portu açık tutulmalıdır.
-
Hizmet olarak çalıştırılmak istenirse init scripti veya systemd birimi kullanılabilir.
-
Çoklu sunucu kurmak için birden fazla instance’ın farklı portlarda çalıştırılması gerekir.
Bu şekilde kolayca Redis sunucusu kurulmuş olur. Ardından veri yapıları kullanılarak veri depolama ve işleme yapılabilir.