2012-10-10 37 views
5

requisitos primarios:MongoDB v/s Redis

  1. Clustering y soportar la replicación y el despliegue, por lo tanto fácil y de bajo costo en la nube.
  2. Soporte directo para objetos. Saque ORM de la ecuación.
  3. Cliente de Python.
  4. Leer escrituras pesadas y moderadas.
  5. Necesita velocidad moderada pero nada como el comercio de acciones.

Respuesta

4

Basado en este artículo

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

finalmente Me perforó por mis opciones de base de datos a Redis y MongoDB, ya que parecen satisfacer la mayor parte de los requisitos. Explicaré cómo elijo el más apropiado para mis requisitos.

  1. Compatibilidad con clústeres y replicación: Redis tiene poco soporte para clustering o replicación. De ahí que tu memoria crezca en proporción a tus datos. Dado que estamos utilizando una infraestructura basada en la nube, los costos podrían ser sustanciales para respaldar ese tipo de memoria. MongoDB por otro lado es compatible con la replicación y la agrupación. Redis 0 MongoDB 1.
  2. Soporte directo para objetos - Sin ORM: Aquí claramente Redis es un ganador ya que admite un modelo similar a memcached. Sin embargo, MongoDB también ofrece un "objeto de almacenamiento" y soporte directo para JSON. Entonces, si pudiera sacrificar los requisitos de velocidad, MongoDB satisface esta necesidad. Redis 1 MongoDB 1.
  3. Cliente de Python: ambas bases de datos tienen robustos clientes de python. Redis 1 MongoDb 1.
  4. Leer escrituras pesadas y moderadas: no creo que haya una diferencia distintiva en el rendimiento de lectura frente a estos dos db. Sin embargo, solo la experiencia dirá. Por el momento, les doy la misma puntuación a ambos. Redis 1 MongoDB 1.
  5. No necesita negociación de acciones como la velocidad - Claramente MongoDB tiene una ventaja aquí. Redis 0 MongoDB 1.

Puntuación total: Redis 3 MongoDB 5.

Por ahora voy a ir con MongoDB. Como una ventaja adicional, MongoDB también tiene soporte de consultas geoespaciales. Entonces, si por algún motivo tengo que agregar la consulta basada en la ubicación a mi aplicación, no debería ser realmente difícil hacer esa transición con MongoDB. Veamos cómo se planean las cosas. Espero volver algún día y volver a esta respuesta :). Por favor, siéntase libre de agregar cualquier cosa que me haya perdido.

+16

"No necesita negociación de acciones como la velocidad" - si no lo necesita, pero uno lo tiene, entonces el puntaje para este punto es 1: 1, no 0: 1. –

Cuestiones relacionadas