33 votes

Est-ce que Memcache est recommandé lors de l'utilisation de mongoDB comme base de données?

Je voudrais savoir si vous recommandez Memcache lors de l'utilisation d'une base de données NoSQL comme mongoDB.

56voto

Gates VP Points 26481

Le concept de l'utilisation de memcache découle de l'idée que vous avez "RAM supplémentaire" assis quelque part. Les deux MongoDB et MySQL (et la plupart des DBs) prendra toutes les meg de RAM qu'ils peuvent obtenir.

Si le cas de la commune de MySQL / Memcache, il est très bien documenté que l'utilisation de Memcache est plus sur la réduction de la charge de requêtes sur le serveur, qu'il s'agit d'accélérer les requêtes. Une bonne memcache mise en œuvre fondamentalement juste essaye de garder le plus commun de données en mémoire afin que le serveur de base de données peut désabonnement de loin sur les plus grandes choses.

En fait, il a été mon expérience que l'utilisation de memcache est généralement une dépendance sur memcache pour maintenir les performances du système.

Donc, pour revenir à la question initiale, où avez-vous RAM supplémentaire?

Si vous avez de la RAM supplémentaire sur les serveurs web, vous pouvez être en mesure d'utiliser Memcache. Bien sûr, vous pouvez également exécuter Mongo localement sur le serveur web. Juste slave les données dont vous avez besoin à partir de le maître.

Si vous avez de la RAM supplémentaire sur d'autres ordinateurs, puis il n'y a pas vraiment d'un point dans l'utilisation de memcache. Ajoutez simplement plus de nœuds à votre MongoDB jeu de réplicas ou éclat. C'est là que MongoDB effectivement brille. En raison de la fragmentation / réplication, vous pouvez plus de RAM à Mongo Horizontalement pour augmenter les performances. Avec SQL, il est très difficile de "juste ajouter des serveurs supplémentaires" parce que les jointures ne pas très bien. Mais avec Mongo, c'est tout à fait possible de simplement "ajouter plus de nœuds" à un problème.

11voto

Arantor Points 492

MongoDB stocke tout dans la mémoire de toute façon et fonctionne dans la même veine, étant un système basé sur des valeurs clés, mais je pense que MongoDB est plus flexible, car il permet de stocker des objets BSON en eux-mêmes.

(Pour plus de précision, MongoDB utilise BSON, une forme spécialisée de JSON, pour stocker toutes ses données, qui inclut des objets dans des objets.)

3voto

Jan Hančič Points 19496

Au début non. Si vous rencontrez des problèmes de performances ultérieurement, ajoutez une couche de mise en cache (memcache). Mais vous ne gagnerez rien si vous allez utiliser Redis par exemple, car Redis stocke déjà tout en mémoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X