Ne Zaman Yeniden? MongoDB ne zaman? [kapalı]


466

İstediğim şey Redis ve MongoDB arasında bir karşılaştırma değil. Farklı olduklarını biliyorum; performans ve API tamamen farklıdır.

Redis çok hızlı, ancak API çok 'atomik'. MongoDB daha fazla kaynak tüketecek, ancak API'nın kullanımı çok kolay ve bundan çok memnunum.

İkisi de harika ve Redis'i dağıtımda olabildiğince kullanmak istiyorum, ancak kodlaması zor. MongoDB'yi geliştirmede olabildiğince kullanmak istiyorum, ancak pahalı bir makineye ihtiyacı var.

Her ikisinin de kullanımı hakkında ne düşünüyorsunuz? Redis ne zaman seçilir? MongoDB ne zaman seçilir?

Yanıtlar:


308

Ben söyleyebilirim, bu sizin tür dev ekibinize ve sizin uygulama ihtiyaçlarınıza bağlıdır.

Örneğin, çok fazla sorgulamaya ihtiyacınız varsa , bu genellikle geliştiricilerinizin Redis'i kullanmasının, verilerinizin verimlilik için her nesne türü için özelleştirilmiş çeşitli özel veri yapılarında depolanabileceği anlamına gelir. MongoDB'de yapı, verileriniz arasında daha tutarlı olduğu için aynı sorgular daha kolay olabilir. Öte yandan, Redis'te, bu sorgulara verilen yanıtın hızı , verilerinizin depolanabileceği çeşitli yapılarla uğraşmak için yapılan ekstra işin getirisidir.

MongoDB, geleneksel DB ve SQL deneyimine sahip geliştiriciler için basitlik, çok daha kısa öğrenme eğrisi sunar. Bununla birlikte, Redis'in geleneksel olmayan yaklaşımı öğrenmek için daha fazla çaba gerektirir, ancak daha fazla esneklik gerektirir.

Örneğin. Bir önbellek katmanı Redis'te muhtemelen daha iyi uygulanabilir. Şemaya uygun daha fazla veri için MongoDB daha iyidir. [Not: Hem MongoDB hem de Redis teknik olarak düzensizdir]

Bana sorarsanız, çoğu gereksinim için kişisel seçimim Redis'tir.

Son olarak, umarım şimdiye kadar http://antirez.com/post/MongoDB-and-Redis.html


16
fyi, mongodb şematiktir.
Özgür

18
MogoDB şematiktir. ve veritabanında depolanan veriler büyüdükçe MongoDB, Redis'ten çok daha hızlı olduğunu kanıtlıyor. Yeniden kaydetme yalnızca depolanan veriler küçük olduğunda daha hızlı olur.
Anderson

4
MongoDB'nin şematik olması ve daha sonra ihtiyaç duyanlar için şema uygulaması için ORM yazarlarına bırakılmasını seviyorum . Mongoose , ihtiyaç duyduğunuzda kullanımı kolay şemalar sunan harika bir ORM'dir :)
Chev

18
Redis veritabanı boyutunun makinedeki RAM miktarı ile sınırlı olduğunu bilmelisiniz. Bundan daha büyük ve manuel ve yoğun olan kümelenmeyi düşünmek zorundasınız.
Akash Agrawal

4
MongoDB bir şemayı zorlamıyor, ancak birisinin şema olmadan kullandığı bir durum görmek istiyorum ... şema kelimesini nasıl tanımladığınız
Robbie Guilfoyle

236

Bu sorunun oldukça eski olduğunu fark ettim. Bununla birlikte, aşağıdaki yönlerin eklenmeye değer olduğunu düşünüyorum:

  • Verilerinizi nasıl sorgulayacağınızı henüz bilmiyorsanız MongoDB'yi kullanın.

    MongoDB, Hackathonlar, yeni başlayanlar veya eklediğiniz verileri nasıl sorgulayacağınızı bilmediğiniz her seferinde uygundur. MongoDB, temel şemanız hakkında herhangi bir varsayımda bulunmaz. MongoDB şematik ve ilişkisel değilken, bu hiç bir şema olmadığı anlamına gelmez. Bu, şemanızın uygulamanızda tanımlanması gerektiği anlamına gelir (örneğin Mongoose'u kullanarak). Bunun yanı sıra, MongoDB bir şeyleri prototiplemek veya denemek için mükemmeldir. Performansı o kadar da iyi değil ve Redis ile karşılaştırılamaz.

  • Mevcut uygulamanızı hızlandırmak için Redis kullanın.

    Redis, LRU önbelleği olarak kolayca entegre edilebilir . Redis'i bağımsız bir veritabanı sistemi olarak kullanmak çok nadirdir (bazı insanlar buna "anahtar / değer" deposu olarak başvurmayı tercih eder). Craigslist gibi web siteleri , birincil veritabanlarının yanında Redis kullanıyor . Antirez (Redis'in geliştiricisi) Lamernews kullanarak Redis'in bağımsız bir veritabanı sistemi olarak kullanılmasının gerçekten mümkün olduğunu gösterdi.

  • Redis, verilerinize dayanarak herhangi bir varsayımda bulunmaz.

    Redis, bir dizi yararlı veri yapısı sağlar (örn. Kümeler, Karmalar, Listeler), ancak verilerinizi nasıl depolamak istediğinizi açıkça tanımlamanız gerekir. Özetle, benzer şeyleri başarmak için Redis ve MongoDB kullanılabilir. Redis sadece daha hızlıdır, ancak prototipleme için uygun değildir. Bu genellikle MongoDB'yi tercih edeceğiniz bir kullanım durumudur. Bunun yanı sıra, Redis gerçekten esnektir. Sağladığı temel veri yapıları, yüksek performanslı DB sistemlerinin yapı taşlarıdır.

Redis ne zaman kullanılır?

  • Önbelleğe almak

    MongoDB kullanarak önbellekleme çok mantıklı değil. Çok yavaş olurdu.

  • DB tasarımınızı düşünmek için yeterli zamanınız varsa.

    Belgelerinizi Redis'e atamazsınız. Verilerinizi nasıl saklamak ve düzenlemek istediğinizi düşünmeniz gerekir. Bir örnek Redis'teki hash'lerdir. Bunlar "geleneksel", iç içe nesnelerden oldukça farklıdır, yani iç içe belgeleri saklama biçiminizi yeniden düşünmeniz gerekir. Bir çözüm, karma içinde başka bir karma için bir referans saklamak olacaktır ( key gibi bir şey : [ikinci karma'nın kimliği] ). Başka bir fikir, bunu * SQL arka planı olan çoğu insan için sezgisel görünen JSON olarak saklamak olacaktır.

  • Gerçekten yüksek performansa ihtiyacınız varsa .

    Redis'in sağladığı performansı yenmek neredeyse imkansızdır. Veritabanınızın önbelleğiniz kadar hızlı olduğunu hayal edin. Redis'i gerçek bir veritabanı olarak kullanmak böyle bir şey .

  • Umurunda yoksa o ölçekleme hakkında çok.

    Ölçeklendirme Redis eskisi kadar zor değil. Örneğin, verileri birden çok Redis örneği arasında dağıtmak için bir tür proxy sunucusu kullanabilirsiniz. Master-slave çoğaltma o kadar karmaşık değildir , ancak anahtarları birden fazla Redis örneği arasında dağıtmanın uygulama sitesinde yapılması gerekir (örn. Bir karma işlevi, Modulo vb.). MongoDB'yi kıyaslayarak ölçeklendirmek çok daha basittir.

MongoDB ne zaman kullanılır?

  • Prototipleme, Startup'lar, Hackathonlar

    MongoDB hızlı prototipleme için mükemmeldir. Yine de, performans o kadar iyi değil. Ayrıca, büyük olasılıkla uygulamanızda bir tür şema tanımlamanız gerekeceğini unutmayın.

  • Şemanızı hızlı bir şekilde değiştirmeniz gerektiğinde.

    Çünkü şema yok! Geleneksel, ilişkisel DBMS'deki tabloları değiştirmek acı verici bir şekilde pahalı ve yavaştır. MongoDB, altta yatan verileriniz hakkında çok fazla varsayımda bulunmadan bu sorunu çözer. Bununla birlikte, bir şema tanımlamanıza gerek kalmadan mümkün olduğunca optimize etmeye çalışır.

TL; DR - Performans önemliyse ve verilerinizi optimize etmek ve düzenlemek için zaman harcamak istiyorsanız Redis kullanın. - DB'niz hakkında fazla endişelenmeden bir prototip oluşturmanız gerekirse MongoDB'yi kullanın.

Daha fazla okuma:


3
DB tasarımınızı düşünmek için yeterli zamanınız varsa. Bunu gerçekleştirmek için: SO verilerini depolamak istediğinizi varsayalım. Mongo ise : Sadece iç içe yanıtlar ve yorumlar ile tamamlandı soruları dökümü ancak yılında REDIS aşağıdakileri yapmanız gerekir: SO REDIS üzerine
Abhishek Gupta

223

Redis. Diyelim ki php'de bir site yazdınız; her ne sebeple olursa olsun, popüler olur ve zamanının ilerisindedir veya üzerinde porno vardır. Bu php çok korkutucu, "Hayranlarımı kaybedeceğim çünkü bir sayfa için 10 saniye beklemeyeceklerini" fark ettiniz. Bir web sayfasının sabit bir url (asla değişmez, whoa), eğer birincil anahtar olduğunu aniden fark edersiniz ve daha sonra disk yavaşken ve php daha yavaşken belleğin hızlı olduğunu hatırlarsınız. :( Sonra bellek ve bu URL kullanarak bir depolama mekanizması moda web anahtarı içeriği "değer" olarak adlandırmaya karar verirken "anahtar" diyoruz. Tüm sahip olduğunuz - anahtar ve içerik. Buna "meme önbellek" diyorsunuz. Richard Dawkins'i seviyorsun çünkü o harika. Sincaplar gibi html'lerinizi önbelleklerini önbelleğe alıyorsunuz. Sen mutlusun. Sonra başkalarının bunu yaptığını görüyorsunuz - ama Redis'i seçiyorsunuz, çünkü diğerinin kedilerin kafa karıştırıcı görüntüleri var, bazıları dişlerle.

Mongo. Bir site yazdınız. Heck birçok ve her dilde yazdınız. Bu kokuşmuş SQL maddelerini yazmak için zamanınızın çoğunun harcandığını fark edersiniz. Sen bir dba değilsin, ama işte buradasın, aptal sql ifadeleri yazıyorum ... sadece bir tane değil, her yerde korkutuyorsun. msgstr "bunu seçin, seçin". Ama özellikle rahatsız edici WHERE maddesini hatırlıyorsunuz. Soyad "thornton" ve film "kötü santa" anlamına gelir. Urgh. "Neden bu dbas neden sadece işlerini yapmıyor ve bana bazı saklı prosedürler vermiyor?" Daha sonra aracı adı gibi bazı küçük alanları unutursunuz ve sonra tabloyu düşürmeniz, tüm 10G büyük verileri dışa aktarmanız ve bu yeni alanla başka bir tane oluşturmanız ve verileri içe aktarmanız gerekir; bu da önümüzdeki 14 gün boyunca 10 kez devam eder. selamlama, başlık gibi saçmalıkları hatırlamaya devam et, artı adresleri olan bir yabancı anahtar ekleme. Sonra soyadı soyadı olmalı. Günde neredeyse bir değişiklik. Sonra darnit diyorsun. Ben bir web sitesi / sistem almak ve yazmak zorunda, bu veri modeli bs boş ver. Yani google, "SQL yazmaktan nefret ediyorum, lütfen SQL kullanmayın, durmasını sağlayın" ama up up 'nosql' ve sonra bazı şeyler okudunuz ve sadece herhangi bir şema olmadan verileri döktüğünü söylüyor. Geçen haftanın fiyaskosunun daha fazla masa bıraktığını ve gülümsediğini hatırlıyorsun. Sonra mongo'yu seçersiniz çünkü 'airbud' gibi bazı büyük adamlar uygun kiralama sitesini kullanır. Tatlı. Artık değiştirmeye devam ettiğiniz bir modeliniz olduğu için veri modeli değişikliği yok.


Ne demek istiyorsun You don't need to rewrite your crap php code?, kv store bunu nasıl çözüyor? :)
Roy Lee

13
@Roylee yavaş ve boktan php html içinde bir web sayfası çıktı anlamına gelir. Daha hızlı / daha verimli hale getirmek için kodu yeniden yazmak yerine, php'yi bir kez başlangıçta ve daha sonra sonsuza dek çalıştırırsınız, sadece kv mağazanızı kullanarak html'de önceden oluşturulmuş web sayfasını hatırlayın.
Mikepote

Bu hikayeyi anlatma şekliniz nihayet şemadan uzaklığın neden harika olduğunu kavramsallaştırmama yardımcı oldu! Sadece gücü anlamak için SQL ile uğraşmak zorunda birkaç yıl kurtardı.
Nick Pineda

4
'Daha fazla model değişikliği yok' durumu gerçekten yakalamıyor. Mevcut tüm girişlerinizi güncellemek için veri hareket kodu yazmazsanız, aynı anda aynı DB'de yaşayan 'N' biraz farklı modellere sahip olduğunuza benzer ve kodun hangi modelle ne zaman uğraştığını anlamanız gerekir. DB'den bir şey okur.
Terry Coatta

2
Gördüğüm en iyi cevaplardan biri. Harika bir içeriğe sahip ve aslında beni yüksek sesle güldürüyor (kelimenin tam anlamıyla lol)
colbyJax


11

Cevaplanması zor soru - çoğu teknoloji çözümünde olduğu gibi, bu gerçekten durumunuza bağlıdır ve çözmeye çalıştığınız sorunu tanımlamadığınız için, herkes nasıl bir çözüm önerebilir?

Hangilerinin ihtiyaçlarınızı karşıladığını görmek için her ikisini de test etmeniz gerekir.

Bununla birlikte, MongoDB pahalı bir donanım gerektirmez. Diğer herhangi bir veritabanı çözümü gibi, daha fazla CPU ve bellek ile daha iyi çalışacaktır, ancak özellikle erken geliştirme amaçları için kesinlikle bir gereklilik değildir.


10

Redis, bir disk veri deposudur ve durumunu diske sürdürebilir (yeniden başlattıktan sonra kurtarmayı etkinleştirmek için). Ancak bellek içi veri deposu olmak, veri deposunun (tek bir düğümde) boyutunun sistemdeki toplam bellek alanını (fiziksel RAM + takas alanı) aşamaz. Gerçekte, Redis bu alanı sistemdeki diğer birçok işlemle paylaştığından ve sistem bellek alanını tüketirse, işletim sistemi tarafından büyük olasılıkla öldürüleceğinden bunun çok daha az olacaktır.

Mongo, tüm RAM gibi (tüm yazılımlar gibi) çalışma setine uyduğunda en verimli olan disk tabanlı bir veri deposudur . Disk tabanlı bir veri olması, bir Mongo veritabanının boyutunda herhangi bir yapısal sınır olmadığı anlamına gelir, ancak yapılandırma seçenekleri, kullanılabilir disk alanı ve diğer endişeler, belirli bir sınırın üzerindeki veritabanı boyutlarının pratik veya verimsiz hale gelebileceği anlamına gelebilir.

Hem Redis hem de Mongo, yüksek kullanılabilirlik, yedekleme ve veri deposunun genel boyutunu artırmak için kümelenebilir.


10

Tüm cevaplar (bu yazının yazıldığı sırada), Redis, MongoDB ve belki de SQL tabanlı ilişkisel bir veritabanının aslında aynı araç olduğunu varsayar: "veri depola". Veri modellerini hiç dikkate almazlar.

MongoDB: Karmaşık Veriler

MongoDB bir belge deposudur. SQL güdümlü ilişkisel veritabanı ile karşılaştırmak için: ilişkisel veritabanları dizinlenmiş CSV dosyalarına sadeleştirilir, her dosya bir tablodur; belge depoları, her dosya bir belge olan ve birden çok dosya birlikte gruplandırılmış olarak dizinlenmiş JSON dosyalarına sadeleştirir.

JSON dosyaları yapı olarak XML ve YAML dosyalarına ve Python'daki sözlüklere benzer, bu nedenle bu tür hiyerarşideki verilerinizi düşünün. Dizin oluştururken yapı anahtardır: Bir belge, başka belgeler, diziler veya skaler değerler içeren adlandırılmış anahtarlar içerir. Aşağıdaki dokümanı düşünün.

{
  _id:  0x194f38dc491a,
  Name:  "John Smith",
  PhoneNumber:
    Home: "555 999-1234",
    Work: "555 999-9876",
    Mobile: "555 634-5789"
  Accounts:
    - "379-1111"
    - "379-2574"
    - "414-6731"
}

Yukarıdaki belgenin PhoneNumber.Mobiledeğeri olan bir anahtarı vardır 555 634-5789. Anahtarın PhoneNumber.Mobilebir değeri olduğu belgelerden oluşan bir koleksiyonda arama yapabilirsiniz ; dizine eklenir.

Ayrıca, Accountsbirden fazla dizini barındıran bir diziye sahiptir . Bir belge için sorgu mümkündür Accountsiçeren tam bazı değerler alt kümesi tüm değerlerin bir kısmını da, ya hiçbir değerlerin bir kısmını da. Bu Accounts = ["379-1111", "379-2574"], yukarıdakileri arayabileceğiniz ve bulamayacağınız anlamına gelir ; Accounts includes ["379-1111"]yukarıdaki belgeyi arayabilir ve bulabilirsiniz; ve Accounts includes any of ["974-3785","414-6731"]yukarıdaki bilgileri ve varsa "974-3785" hesabını içeren belgeyi arayabilir ve bulabilirsiniz.

Belgeler istediğiniz kadar derine iniyor. PhoneNumber.Mobilebir diziyi, hatta bir alt dokümanı ( PhoneNumber.Mobile.Workve PhoneNumber.Mobile.Personal) tutabilir . Verileriniz son derece yapılandırılmışsa, dokümanlar ilişkisel veritabanlarında büyük bir adımdır.

Verileriniz çoğunlukla düz, ilişkisel ve katı bir şekilde yapılandırılmışsa, ilişkisel bir veritabanıyla daha iyi durumda olursunuz. Yine, büyük işaret, veri modellerinizin birbiriyle ilişkili CSV dosyalarından oluşan bir koleksiyona mı yoksa XML / JSON / YAML dosyalarından oluşan bir koleksiyona mı ait olduğudur.

Çoğu proje için, SQL veya Document Store'ların uymadığı bazı küçük alanlarda küçük bir çözümü kabul ederek ödün vermeniz gerekir; geniş bir veri yayılımı depolayan bazı büyük, karmaşık projeler için (birçok sütun; satırlar önemsizdir), bazı verileri bir modelde ve diğer verileri başka bir modelde saklamak mantıklı olacaktır. Facebook hem SQL hem de bir grafik veritabanı kullanır (burada veriler düğümlere yerleştirilir ve düğümler diğer düğümlere bağlanır); Craigslist eskiden MySQL ve MongoDB kullanıyordu, ama tamamen MongoDB'ye geçmeye çalışıyordu. Bunlar, bir model altına konulursa verilerin kapsamı ve ilişkisinin önemli handikaplarla karşılaştığı yerlerdir.

Redis: Anahtar / Değer Değeri

Redis, temelde bir anahtar / değer deposu. Redis, ona bir anahtar vermenizi ve tek bir değer aramanızı sağlar. Redis, dizeleri, listeleri, karmaları ve diğer birkaç şeyi saklayabilir; ancak, sadece isme bakar.

Önbellek geçersiz kılma, bilgisayar biliminin zor sorunlarından biridir; diğeri bir şeyleri adlandırmak. Bu, arka uçta yüzlerce fazla aramayı önlemek istediğinizde Redis'i kullanacağınız anlamına gelir, ancak yeni bir aramaya ihtiyaç duyduğunuzda anlamanız gerekir.

En belirgin geçersiz kılma durumu yazma sırasında güncellenmesidir: Eğer okursanız user:Simon:lingots = NOTFOUND, SELECT Lingots FROM Store s INNER JOIN UserProfile u ON s.UserID = u.UserID WHERE u.Username = Simonsonucu 100olarak saklayabilirsiniz SET user:Simon:lingots = 100. Simon 5 lingots ödül Sonra, okumak user:Simon:lingots = 100, SET user:Simon:lingots = 105ve UPDATE Store s INNER JOIN UserProfile u ON s.UserID = u.UserID SET s.Lingots = 105 WHERE u.Username = Simon. Artık veritabanınızda ve Redis'de 105 var ve veritabanını user:Simon:lingotssorgulamadan alabilirsiniz .

İkinci durum bağımlı bilgileri güncellemek. Bir sayfanın parçalarını oluşturduğunuzu ve çıktılarını önbelleğe aldığınızı varsayalım. Başlık oyuncunun deneyimini, seviyesini ve para miktarını gösterir; oyuncunun Profil sayfasında istatistiklerini gösteren bir blok bulunur; ve benzerleri. Oyuncu biraz tecrübe kazanır. Eh, şimdi birkaç var templates:Header:Simon, templates:StatsBox:Simon, templates:GrowthGraph:Simonsorguları bir şablon motoru aracılığıyla çalıştırmak yarım düzine veritabanının çıkışını önbelleğe ettik nerede ve benzeri alanlar. Normalde, bu sayfaları görüntülediğinizde şunları söylersiniz:

$t = GetStringFromRedis("templates:StatsBox:" + $playerName);
if ($t == null) {
  $t = BuildTemplate("StatsBox.tmpl",
                     GetStatsFromDatabase($playerName));
  SetStringInRedis("Templates:StatsBox:" + $playerName, $t);
}
print $t;

Sonuçlarını yeni güncellediğiniz için anahtar / değer önbelleğinizi GetStatsFromDatabase("Simon")bırakmanız gerekir templates:*:Simon. Bu şablonlardan herhangi birini oluşturmaya çalıştığınızda, uygulamanız veri tabanınızdan (PostgreSQL, MongoDB) veri alıp şablonunuza ekleyecek; sonucu Redis'te saklar ve umarım, bir sonraki çıkış bloğunu görüntülediğinde veritabanı sorguları yapma ve şablonlar oluşturma zahmetine girmez.

Redis ayrıca yayıncı-abone mesaj kuyrukları vb. Yapmanızı sağlar. Bu tamamen başka bir konu. Burada nokta Redis, ilişkisel bir veritabanından veya bir belge deposundan farklı bir anahtar / değer önbelleğidir.

Sonuç

İhtiyaçlarınıza göre araçlarınızı seçin. En büyük ihtiyaç genellikle veri modelidir, çünkü kodunuzun ne kadar karmaşık ve hataya açık olduğunu belirler. Özel uygulamalar performansa, her şeyi C ve Assembly karışımına yazdığınız yerlere dayanacaktır; çoğu uygulama genelleştirilmiş durumu ele alır ve yüksek performanslı bir SQL veritabanından veya bir belge deposundan çok daha hızlı olan Redis veya Memcached gibi bir önbellek sistemi kullanır.


2
"Önbellek geçersiz kılma, bilgisayar biliminin zor sorunlarından biridir, diğeri ise şeyleri adlandırmaktır." Çok doğru!
Arel

2

Ve bol miktarda RAM'iniz varsa ikisini de kullanmamalısınız. Redis ve MongoDB genel amaçlı bir aracın fiyatına geliyor. Bu çok fazla ek yükü tanıtır.

Redis'in Moğol'dan 10 kat daha hızlı olduğu söyleniyordu. Bu artık doğru olmayabilir. MongoDB (doğru hatırlamıyorsam), bellek yapılandırmaları aynı olduğu sürece belgeleri saklamak ve önbelleğe almak için memcache'yi geçtiği iddia edildi.

Her neyse. Redis iyi, MongoDB iyidir. Alt yapıları önemsiyorsanız ve toplanmaya ihtiyacınız varsa MongoDB'yi tercih edin. Anahtarları ve değerleri saklamak ana endişenizse Redis ile ilgilidir. (veya başka bir anahtar / değer deposu).


2

Redis ve MongoDB'nin ikisi de ilişkisel olmayan veritabanlarıdır, ancak farklı kategorilerdedir.

Redis bir Anahtar / Değer veritabanıdır ve bellekte depolamayı süper hızlı hale getirir. Önbellekleme ve geçici veri depolama (bellekte) için iyi bir adaydır ve bulut platformlarının çoğu (Azure, AWS gibi) desteklediğinden, bellek kullanımı ölçeklenebilirdir.Ancak bunu makinelerinizde kullanacaksanız sınırlı kaynaklar, bellek kullanımı düşünün.

MongoDB ise bir belge veritabanıdır. Büyük metinleri, görüntüleri, videoları, vb. Ve işlemler dışında veritabanlarıyla yaptığınız hemen hemen her şeyi tutmak için iyi bir seçenektir.Örneğin, bir blog veya sosyal ağ geliştirmek istiyorsanız, MongoDB uygun bir seçimdir. Ölçeklendirme stratejisiyle ölçeklenebilir. Diski depolama ortamı olarak kullanır, böylece veriler kalıcı olur.


1

Eğer proje bütçeniz ortamınızda yeterli RAM belleğine sahip olmanıza izin veriyorsa - yanıt Redis'tir. Özellikle küme işlevselliğine sahip yeni Redis 3.2'yi hesaba katar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.