Pourquoi utiliser Redis au lieu de MongoDb pour la mise en cache? [fermé]

j'ai vu beaucoup de gens utiliser Redis comme cache dernièrement, pourquoi pas Mongo? Pour autant que je sache, Redis peut fixer une date d'expiration sur un index, comme memcache, mais y a-t-il des raisons de ne pas utiliser Mongo pour cela?

je demande comme je fais une grande jointure dans MySQL et puis changer les données après l'avoir sélectionnée. J'utilise déjà memcache sur d'autres parties du site, mais sauvegarder ceci dans Mongo me permettrait de faire des recherches géospatiales sur les données mises en cache.

16
demandé sur jfountain 2012-04-25 18:24:42

3 réponses

beaucoup de gens utilisent MongoDB pour une cache de basse et moyenne qualité et cela fonctionne très bien.

parce qu'il offre plus de fonctionnalités qu'un simple stockage de valeur clé via une queryability ad hoc, il n'est pas aussi pur d'une couche de cache qu'une memcache ou un redis (il peut être plus lent à insérer et à récupérer des données).

une performance extrêmement élevée est possible (L'ensemble de travail est en RAM après tout), mais le modèle de données est plus lourd.

cependant, de L'autre côté, MongoDB ne offrir une couche de persistance qui fait beaucoup plus de sens (pour la plupart des développeurs) pour le type de données qui est le plus probablement nécessaire à un moment ultérieur, contrairement à Redis.

13
répondu Tyler Brock 2013-05-27 17:25:26

la plus grande différence entre MongoDB et Redis est que Redis stocke habituellement toute la base de données en mémoire. MongoDB utilise un fichier mappé en mémoire pour prétendre que tout est en mémoire, et laisse les bits de page OS entrer et sortir du disque si nécessaire. Si L'OS peut tout garder en mémoire, les performances seront quelque peu similaires.

10
répondu Joshua Martell 2012-04-26 02:57:11

quand on parle de mise en cache, la vitesse vient à l'esprit. Le but ici est de mettre et de récupérer quelque chose aussi vite que possible. En ce sens, redis est plus rapide que mongodb. Cependant, si vous trouvez que mongodb est adapté pour faire des recherches géospatiales sur les données cachées, il est correct de l'utiliser. Vous pouvez bien sûr investir un certain temps et mettre en œuvre la même chose dans redis, puis benchmark pour voir ce que vous gagnez.

3
répondu hymloth 2012-04-25 14:50:47