Redis, Memcached, MongoDB, RabbitMQ hakkında / Konu Dışı / Laravel Türkiye Forumları
» Redis, Memcached, MongoDB, RabbitMQ hakkında
#1 08.07.2019 12:27:48
Redis, Memcached, MongoDB, RabbitMQ hakkında
Bunlar temel olarak NoSql veritabanı sunucusu mudur ? MongoDB, rabbitMQ veya Memcache'in yaptığı herşeyi Redis yapabilir mi ? Cevap verirseniz çok sevinirim.
Son düzenleyen neri (08.07.2019 12:51:51)
#2 08.07.2019 17:59:42
Yanıt: Redis, Memcached, MongoDB, RabbitMQ hakkında
Hararetle cevap vereyim. Hepsi birbirinden farklı şeyler.
Redis-> aslında nosql bile sayılmaz. Anahtar ve değer çiftleri tutulur. Sorgu yapılmaz (kısmen yapılabilir) Pub/sub gibi hoş özellikleri vardır.
Mongodb-> nosql veritabanıdır. Basitçe anlatmak gerekirse bildiğiniz json formatında veri saklamak içindir. Sorgu yapılabilir.
Memcached-> kullanmadım ama apayrı bir dünya. Adı üstünde cache için kullanılır.
RabiitMq-> bu olayın tamamen dışında hiç bir veri tutmaz aslında. Yapacağınız işleri sıraya koymak içindir. Siz işlerinizi yapılma sırasına göre rabbitte kuyruğa sokarsınız. Rabbit sırası geleni salar, siz de kendi uygulamanızda bunu yakalayıp sırası geleni çalıştırırsınız.
Yani hepsi de bambaşka şeyler.
Redis ile hepsi yapılmaz. İstenirse yapılır ama mesela redis te mongodb gibi veri tutmak çok kötü bir fikir.
Son düzenleyen alihankoc (08.07.2019 18:01:34)
#3 08.07.2019 18:36:46
@alihankoc hocam cevap için teşekkür ederim, yabancı kaynakları araştırırken genellikle birbirleriyle karşılaştırıldıkları blog yazıları gördüm o yüzden kafam karıştığı için sormak istedim. Ayrıca geçen günlerde bi iş ilanında görmüştüm, hem mongodb hem memached hem rabbitmq gibi yetenekler talep ediyorlardı. Bi insanın bunların hepsinde uzmanlaşması mümkün mü gerçekten ?
#4 08.07.2019 19:01:54
Redis ve Memcache(d) anahtar-değer şeklinde veriyi anlık olarak RAM'de tutan araçlar, özellikle önbellek için kullanılırlar. Bu konuda Redis çok daha gelişmiştir ve hızlıdır. Veriyi RAM'de tuttukları için okuma/yazma çok hızlı fakat örneğin sunucu kapanıp açıldığında veri gidecektir. Yani veritabanı gibi kullanılmaları yanlış olur. Redis'te snapshot özelliği var, anlık RAM'deki veriyi diske, kurtarma amaçlı yazıyor ama buna güvenmek pek mantıklı olmaz. Redis ile RabbitMQ gibi mesaj kuyruğu işlemleri yaptırılabilir ama RabbitMQ bu konuda lider, özellikle büyük işler için. Küçük işler için Redis kullanabilirsiniz. Laravel'in desteklemesi Laravel kullananlar için iyi bir avantaj, bir iki ayar ile direk kullanmaya başlayabilirsiniz.
Redis ile Memcache(d) arasında önbellekleme açısından karşılaştırma yapılır.
Redis ile RabbitMQ ile message broker olarak karşılaştırma yapılabilir belki ama RabbitMQ açık ara kazanıyor. Asıl işi o yani sonuçta.
MongoDB ayrı bir olay
#5 08.07.2019 19:28:07
@mgsmus teşekkür ederim hocam siz de açıklayıcı bilgiler yazmışsınız. Dediğim gibi ilanda hepsinin istendiğini görünce biraz şaşırdım hepsinin dalı farklı o yüzden sormak istedim.
Son düzenleyen neri (08.07.2019 19:29:07)