tutorial queries operator gte fields equal mongodb memcached

operator - mongodb queries tutorial



¿Se recomienda Memcache al usar MongoDB? (4)

Al principio no. Si se encuentra con problemas de rendimiento más tarde, agregue una capa de almacenamiento en caché (Memcache). Pero no obtendrá nada si va a utilizar Redis, por ejemplo, ya que Redis ya almacena todo en la memoria.

Me gustaría saber si se recomienda Memcache cuando se utiliza una base de datos NoSQL como mongoDB.


El concepto de usar Memcache surge de la idea de que tienes "memoria RAM extra" sentada en algún lado. Tanto MongoDB como MySQL (y la mayoría de los DB) tomarán todos los megs de RAM que puedan obtener.

En el caso del muy común MySQL / Memcache, está muy bien documentado que el uso de Memcache se trata más de reducir la carga de consultas en el servidor que de acelerar las consultas. Una buena implementación de Memcache básicamente trata de mantener los datos más comunes en la memoria para que el servidor de la base de datos pueda generar grandes cantidades de datos.

De hecho, según mi experiencia, el uso de Memcache generalmente se basa en Memcache para mantener el rendimiento del sistema.

Volviendo a la pregunta original, ¿dónde tienes RAM extra?

Si tiene RAM adicional en los servidores web, puede usar Memcache. Por supuesto, también puede ejecutar Mongo localmente en el servidor web. Simplemente esclava los datos que necesita del maestro.

Si tiene RAM adicional en otras computadoras, entonces realmente no tiene sentido usar Memcache. Simplemente agregue más nodos a su conjunto de réplica MongoDB o fragmento. Aquí es donde realmente brilla MongoDB. Debido a la fragmentación / replicación, puede agregar más RAM a Mongo horizontalmente para aumentar el rendimiento. Con SQL es muy difícil "simplemente agregar más servidores" porque las uniones no se escalan muy bien. Pero con Mongo, es bastante posible simplemente "agregar más nodos" a un problema.


La respuesta dependería de tus casos de uso.
En general, acceder a la memoria RAM es mucho más rápido que acceder al disco.
Incluso las unidades SSD más rápidas son 100 veces más lentas que la RAM.

Ahora, no sé si Mongo tiene un sistema de almacenamiento en caché (lo más probable es que lo haga), o cuál es la política de desalojo, pero como programador preferiría un caché donde pueda almacenar / recuperar y eliminar elementos a voluntad. Por lo tanto, preferiría usar una solución de almacenamiento en caché incluso con Mongo.

En resumen, realmente depende para qué estás usando estas soluciones. No hay una sola respuesta para cubrir todos los usos posibles.


MongoDB almacena todo en la memoria de todos modos y funciona en una línea similar, siendo un sistema basado en valores clave, sin embargo, creo que MongoDB es más flexible, ya que permite almacenar objetos BSON dentro de sí mismos.

(Solo para aclaración, MongoDB usa BSON, una forma especializada de JSON, para almacenar todos sus datos, que incluyen objetos dentro de objetos).