Redis, memcache gibi key-value cache mimarisi şeklinde çalışır.

Memcache de veri bellekte(RAM) tutulur ancak diske yazılmaz. Redis ‘ te ise yine veri bellekte tutulur ancak istenen aralıklarla veri disklere kaydedilir. Ayrıca Redis veri yapılarını da destekler.

Redis , NoSQL bir veritabanıdır. Saniye de 100bin operasyon ve daha fazlasını yürütebilir gerçekten çok hızlıdır. Hafıza alanı bakımından da minimum şekilde kullanır.

Rediste veriler RAM ‘de sıkıştırılarak ayrıca non-relational bir formatta tutulur.

Redis, key-value şeklinde verileri tuttuğu için daha çok cache serverlarda yada session gibi yerlerde kullanılabilir. Sessionda da aynı şekilde veriler key-value şeklinde tutulduğu için yapıya uygundur. (Örn : username : omercelik)

Mesela ; database’imizde bir hotel tablosunu düşünelim.(Hotel table :  hotelId , hotelName , hotelPrice ,hotelDescription vb.)Rediste aynı şekilde bu sistem nasıl kurulur?

Rediste daha öncede dediğimiz gibi veriler key-value şeklinde tutulur. Ayrıca bunlar non-relationaldır. Yani veriler ilişkili değildir.

Rediste yapı : hotelId olarak key verilir. Value olarakta hotelin diğer detay kısımları(hotelName,hotelDescription,..) jsondata olarak direk atanabilir. Ancak bu atadığımız value değeri olan jsondata da bir sorgu atamayız. Yani hotelAdi şu olanı getir diyemeyiz. O jsondata içerisinde sorguya izin yok. Onu ilk önce parse ederiz sonrasında sorgu işlemini yapıp devam edebiliriz.

Ancak her zaman dikkate alınmalıdır. eğer datamız büyükse serialize işleminden dolayı süre uzayabilir. Ve sisteminize Redisi entegre etmeden önce test etmelisiniz. Ayrıca Redis , verileri şifreleyerek depo etmez. Yada bağlantı ile ilgili güvenlik problemleri vardır.