MongoDB vs Redis : à quoi ressemble une com­pa­rai­son des deux bases de données NoSQL très puis­santes qui ont chacune leurs points forts ? Si MongoDB est plutôt destinée à traiter des quantités de données im­por­tantes, Redis se distingue par sa vitesse. Il est possible de combiner les deux solutions.

MongoDB : évo­lu­ti­vité et flexi­bi­lité

MongoDB, dérivé du terme anglais « huMongous » (gi­gan­tesque), est connu pour être l’un des systèmes NoSQL les plus appréciés et po­pu­laires dans le monde. La base de données a été conçue en 2009 par la société 10gen (aujourd’hui MongoDB Inc.) dans le but de stocker des volumes de données con­sé­quents et divers de manière claire et de les gérer en toute sécurité. MongoDB se démarque surtout par sa grande évo­lu­ti­vité ho­ri­zon­tale et ainsi sa flexi­bi­lité inhérente. MongoDB est un système de gestion de base de données open source écrit en C++ et proposé par le Server Side Public License en licences libres et licences pro­prié­taires, con­ti­nuel­le­ment développé.

Conseil

Tirez le maximum de MongoDB : choi­sis­sez Managed MongoDB sur IONOS et profitez de fonctions de sécurité étendues, ainsi que de l’ex­pé­rience solide de nos experts.

Redis : la solution NoSQL rapide

S’il y a bien un point commun que partagent les deux solutions MongoDB vs Redis, c’est leur année de pu­bli­ca­tion : Redis a également été publiée en 2009. Le nom Redis qui provient de « REmote DIc­tio­nary Server » a été programmé par Salvatore San­fi­lippo à l’ANSI (American National Standards Institute). Redis est aussi une solution open source (sous la licence BSD 3 clauses) et fonc­tionne de manière non re­la­tion­nelle, c’est à dire en renonçant (le plus possible) au modèle de tableaux classique. Ce système dispose d’une interface simple et nous séduit avec sa facilité d’uti­li­sa­tion et sa vitesse. Si le système paraît sobre de prime abord, il peut être étendu de multiples façons. C’est pour cette raison que Redis est l’une des mémoires clés-valeur les plus prisées au monde.

Quels sont les domaines d’ap­pli­ca­tion ?

MongoDB est l’expert absolu dans le domaine des Big Data. Si vous devez gérer un grand volume de données et dif­fé­rents types de données, ce système NoSQL est la solution à vos besoins. Si vos besoins aug­men­tent au fil du temps, MongoDB est conçu pour évoluer avec vous. MongoDB s’est établi, notamment dans la gestion de contenus, les solutions e-commerce et les ap­pli­ca­tions qui doivent rester librement con­fi­gu­rables et né­ces­si­tent une analyse constante en temps réel.

En com­pa­rai­son, Redis prend plutôt de l’avance sur le facteur vitesse. Ce système stocke les données en paires clés-valeur et soutient de nombreux types de données. Les temps de réaction courants de moins d’un millième de seconde qui per­met­tent de traiter d’in­nom­brables demandes si­mul­ta­nées au même moment sont le grand point fort de Redis. Cela fait de Redis un choix optimal pour la mise en cache ou le stockage de sessions pour lesquels les données utilisées de dif­fé­rents types doivent être mises à dis­po­si­tion le plus ra­pi­de­ment possible. Les autres domaines où Redis se trouve en position avan­ta­geuse sont Messenger et les salons de dis­cus­sions, les jeux (en ligne), les analyses en temps réel, le streaming, les services fi­nan­ciers et l’Internet des objets. Redis dispose d’une évo­lu­ti­vité aussi bien ho­ri­zon­tale que verticale.

Quels sont les modes de fonc­tion­ne­ment ?

La con­fron­ta­tion MongoDB vs Redis fait ap­pa­raître des dif­fé­rences d’approche et de fonc­tion­ne­ment. Les deux systèmes se reposent sur une approche non re­la­tion­nelle mais ils l’in­ter­prè­tent de deux manières dis­tinctes : MongoDB en­re­gistre les données dans des documents en format BSON et regroupe ces documents en col­lec­tions. Ces données peuvent être struc­tu­rées, semi-struc­tu­rées ou non struc­tu­rées. Les documents se composent de paires clés-valeur, même si la clé est toujours une chaîne de ca­rac­tères et que la valeur peut être entre autres composée d’autres documents, de tableaux, de valeurs boo­léennes ou d’autres types de données. Afin d’assurer une haute dis­po­ni­bi­lité, MongoDB utilise ce que l’on appelle le sharding qui frac­tionne les données sur plusieurs nœuds. Les requêtes se font à l’aide du langage de requête MongoDB.

Le fait que toutes les données soient stockées sur la mémoire RAM et qu’elles se trouvent ainsi à dis­po­si­tion immédiate permet à Redis d’atteindre sa vitesse ex­trê­me­ment élevée. Con­trai­re­ment aux autres solutions, la latence est ici très faible (mais l’espace mémoire est en même temps restreint). Comme son con­cur­rent dans la com­pa­rai­son MongoDB vs Redis, Redis a aussi recours aux paires clés-valeur. La base de données en mémoire prend en charge dif­fé­rentes valeurs et struc­tures de données, telles que les hachages, les listes, les ensembles, les flux et les chaînes. Le stockage des clés res­pec­tives se fait dans un dic­tion­naire et pour le trai­te­ment de plusieurs valeurs, un analyseur syn­taxique est utilisé. Des modules existent pour les fonctions de requête sup­plé­men­taires.

Per­for­mance

MongoDB est une base de données qui permet d’effectuer des requêtes de lecture et d’écriture à grande vitesse. La structure sans schéma de la solution NoSQL n’entraîne aucun ra­len­tis­se­ment en cas de grands volumes de données. Cette vitesse est en outre atteinte grâce à la com­bi­nai­son de dif­fé­rentes mémoires. Mais la base de données en mémoire est en général nettement plus rapide dans notre com­pa­rai­son MongoDB vs Redis. Le stockage qui se fait di­rec­te­ment dans la mémoire vive met les données à dis­po­si­tion. C’est pour cette raison que Redis est idéal pour consulter des contenus le plus ra­pi­de­ment possible. Mais cela occupe plus de mémoire RAM : la con­som­ma­tion de 4 Go pour 100000 assets est presque quatre fois plus élevée que celle de MongoDB.

Évo­lu­ti­vité

En con­fron­tant les pos­si­bi­li­tés d’évo­lu­ti­vité de MongoDB vs Redis, un nouveau visage apparaît. Les deux systèmes offrent dans l’ensemble de bonnes options, surtout MongoDB qui tire son épingle du jeu dans ce domaine. La base de données est conçue de telle manière qu’elle peut évoluer sans limites ho­ri­zon­ta­le­ment et ainsi gérer les types de données les plus variés. Le sharding frac­tionne les données en les mettant à dis­po­si­tion d’une part et en pouvant les traiter de manière très efficace d’autre part. Redis propose certes, une évo­lu­ti­vité ho­ri­zon­tale et verticale mais n’utilise qu’un shard à la fois en série. Seul le Hashed Sharding est possible et la gestion doit se faire ma­nuel­le­ment.

Dis­po­ni­bi­lité

Le sharding a un effet positif sur la dis­po­ni­bi­lité des données dans une base de données MongoDB. Le système utilise des phrases de ré­pli­ca­tions et permet aux uti­li­sa­teurs de pouvoir créer jusqu’à 50 ré­pli­ca­tions d’un fichier. Celles-ci sont ensuite stockées sur dif­fé­rents points de nœuds. Les fonctions de bas­cu­le­ment au­to­ma­tique per­met­tent non seulement de dé­ter­mi­ner un point primaire, mais aussi de le remplacer im­mé­dia­te­ment et au­to­ma­ti­que­ment en cas de panne.

Redis propose également une dis­po­ni­bi­lité élevée et utilise dif­fé­rents points de nœuds si né­ces­saire. Un bas­cu­le­ment au­to­ma­tique est toutefois écarté, à moins que l’ad­mi­nis­tra­teur ne le mette en place ma­nuel­le­ment. Si ce n’est pas le cas, le bas­cu­le­ment doit aussi être initié de manière autonome.

Com­pa­ti­bi­lité

Lorsque l’on compare MongoDB vs Redis, on se rend compte que leur plus grand point commun est la forte com­pa­ti­bi­lité avec des systèmes d’ex­ploi­ta­tion et des langages de pro­gram­ma­tion. En tant que systèmes mul­ti­pla­te­formes, les deux rivaux fonc­tion­nent avec Linux, macOS et Windows. MongoDB prend également en charge Solaris et Redis propose BSD. Le choix du langage de pro­gram­ma­tion possible est con­si­dé­rable dans les deux cas.

Langage de pro­gram­ma­tion Soutenu par MongoDB Soutenu par Redis
Ac­tions­cript
C
C#
C++
Clojure
Cold­Fu­sion
Crystal
D
Dart
Delphi
Elixir
Erlang
Fancy
Go
Groovy
Haskell
Haxe
Java
Ja­vaS­cript
Kotlin
Lisp
Lua
MatLab
Objective-C
OCaml
Pascal
Perl
PHP
Po­wer­Shell
Prolog
Pure Data
Python
R
Rebol
Ruby
Rust
Scala
Scheme
Smalltalk
Swift
Tcl
Visual Basic

Langage de requête

Une requête est exécutée de manière dif­fé­rente entre MongoDB et Redis. MongoDB fonc­tionne avec son propre langage de requête MongoDB (MQL) qui prend en charge une syntaxe similaire au format JSON. De fait, même les analyses de données et les demandes sur plusieurs domaines et clés sont possibles. Redis renonce en revanche à son propre langage de requête et se sert à la place de commandes simples qui fa­ci­li­tent la recherche de données et sont même censées l’accélérer. Ce qui rend possible uni­que­ment les requêtes clé-valeur par défaut. Il faut intégrer d’autres modules pour disposer d’options sup­plé­men­taires.

Deux bases de données open source

Un autre point que partagent MongoDB vs Redis, c’est leur approche open source. Les deux systèmes misent sur des standards libres qui sont utilisés et dé­ve­lop­pés con­ti­nuel­le­ment par une com­mu­nauté engagée. MongoDB met à dis­po­si­tion des versions com­mer­ciales sup­plé­men­taires comme En­ter­prise ou Atlas (pour une uti­li­sa­tion dans le Cloud). Celles-ci proposent des fonc­tion­na­li­tés de sécurité sup­plé­men­taires ainsi qu’un support pro­fes­sion­nel.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avan­ta­geux et cœurs dédiés per­for­mants
  • Sans en­ga­ge­ment pour plus de flexi­bi­lité
  • As­sis­tance par des experts 24h/24 et 7j/7 incluse

MongoDB vs Redis : quelles en­tre­prises les utilisent ?

Nom­breuses sont les grandes en­tre­prises qui ont recours à l’un ou à l’autre de nos con­cur­rents MongoDB vs Redis. Les en­tre­prises les plus connues qui utilisent MongoDB sont :

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Fours­quare
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

Redis est entre autres utilisé par ces en­tre­prises et ces pla­te­formes :

  • Airbnb
  • Craig­slist
  • GitHub
  • Hel­lo­Fresh
  • InstaCart
  • Instagram
  • Pinterest
  • Slack
  • Snapchat
  • Sta­ckO­ver­flow
  • Trello
  • Uber
  • X (an­cien­ne­ment Twitter)

MongoDB vs Redis : laquelle des deux solutions est adaptée à vos besoins ?

Quel est le résultat de notre duel MongoDB vs Redis ? La réponse à cette question est in­ti­me­ment liée à vos exigences. Si vous avez besoin d’une base de données à grande vitesse avec une dis­po­ni­bi­lité immédiate des données, nous vous con­seil­lons d’opter pour Redis. Si au contraire, vous accordez plus d’im­por­tance au Big Data et à la flexi­bi­lité, optez plutôt pour MongoDB. En cas de doute, vous n’avez au­cu­ne­ment besoin de prendre de décision : utilisées de manière conjointe, MongoDB et Redis per­met­tent un travail optimal et peuvent même mu­tua­li­ser leurs points forts. Ainsi, vous profitez de la vitesse de Redis tout en bé­né­fi­ciant des options d’évo­lu­ti­vité de MongoDB.

Conseil

Vous souhaitez en savoir plus sur les bases de données ? Notre Digital Guide comporte de nombreux articles qui abordent ce sujet. Consultez par exemple notre article de pré­sen­ta­tion sur Redis, notre liste des meil­leures bases de données en open source ou encore notre guide pour débuter avec MongoDB.

Aller au menu principal