Redis nedir?

19 Eylül 2016 1 dk okuma süresi 213 okunma

Nosql veritabanlarının (mongodb, ravendb, cassandra, couchdb vb.) yaygın şekilde kullanılmaya başlaması ile sürekli gelişen veritabanı dünyasında Redis yüksek performansı sayesinde öne çıkmaya başladı.

NoSql (not only sql - sql ve daha fazlası), temel olarak ilişkisel olmayan ve key-value mantığı ile çalışan bir veri depolama sistemidir.

Redis, açık kaynak, in-memory tabanlı key-value mantığı ile çalışan bir veri depolama sistemidir. In-memory'den kasıt veriler memory (ram) üzerinde saklanır ve işlenir. Bu nedenle oldukça performanslıdır ve son zamanlarda sıkça tercih edilen bir nosql veritabanı olmuştur. Genelde Memcache benzeri bir yapıdır denir fakat Memcache ile karıştırmamak gerek çünkü Memcache verileri ram'de saklar ve işi bitince siler. Disk üzerinde herhangi bir işlem yapmaz. Fakat Redis belirlenen ayarlamalara göre belli zaman aralıklarında verileri diske yazar ve kalıcı olmasını sağlar.

Redis destekleyen platformlar

  • Linux
  • Windows (henüz resmi olarak desteklenmiyor fakat stabil çalışan bir sürümü var ve linux sistemindekine yakın performans veriyor.)

Redis destekleyen diller

Redis'in avantajları

  • Cpu ve disk kullanımını azaltır.
  • Performansı artırır.
  • Birçok veri türünü destekler
  • Cluster başta olmak üzere sharding, sentinel ve replication gibi enterprise özelliklere sahiptir.
  • Senkron çalışır.

Redis'in dezavantajları

  • Senkron çalışmasından dolayı diğer nosql veritabanları ile karşılaştırıldığında (asenkron alternatifler) performans farkı ortaya çıkar.
  • Veri boyutu ile doğru orantılı olarak ram ihtiyacınız artar.
  • İlişkisel veritabanlarında olduğu gibi kompleks sorgu desteklemez. Basitçe join mantığı yoktur.
  • Transaction desteklemez, yani transaction sırasında hata alınırsa geri dönülmez.

Redis nerelerde kullanılır?

  • Cache (önbellek) sistemi
  • Session (oturum) verileri
  • Sayaçlar
  • Kuyruk işlemleri
  • vb ...

Redis vs MongoDB vs Memcache


Aşağıdaki içerikler İngilizce fakat ne kadar anlayabilirseniz okumanızı tavsiye ederim.


Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
OSX üzerinde Docker ile Sql Server yüklemek ve yönetmek

Mssql kullanan herkes en az bir kere kullanmıştır fakat aradaki farkı pek sorgulamazlar. Bu yazıda stored procedure ile function arasındaki farkların neler olduğunu öğrenebilirsiniz.

Projelerde performans için sql sorgularının ciddi şekilde optimize edilmesi gerekebiliyor. Özellikle yoğun ziyaretçisi olan sistemlerde bu kaçınılmaz. Sql server'da cpu'yu hangi veritabanı ve hangi sorguların en çok kullandığını 2 basit sorgu ile görebilirsiniz.