Memcachedb Versus Versus MongoDB CouchDB en cuanto a la solución de almacenamiento en caché basado en archivos?

StackOverflow https://stackoverflow.com/questions/2813204

Pregunta

Necesitamos una solución de almacenamiento en caché que, básicamente, los cachés de datos (archivos de texto) desde 3 días hasta una semana en base a las preferencias del usuario y criterios. En este caso la memoria caché de basada no tiene sentido para nosotros. Nos remitieron a MemcacheDB sin embargo también pensé en algunas soluciones NO SQL.

Nuestros actuales usos de aplicaciones RDBMS (MySQL) y supongo que tiene sentido utilizar MemcacheDB embargo NOSQL hace atractivo ya que es algo más en el horizonte. Sin embargo, no hemos desplegado una aplicación de nivel de producción bajo NOSQL y las cosas beta no se conforma bien con la administración / inversores. Cualquier forma en ¿Cuáles son sus pensamientos y cómo habría que abordarlo?

Gracias

¿Fue útil?

Solución

CouchDB y MongoDB son los dos grandes bases de datos, pero son terribles opciones para una capa de caché en la parte superior de su RDBMS existentes. Además del hecho de que son aún bastante inmaduro, que no se ajustan a la finalidad para nada. Además, la velocidad en cuanto a que sería mejor ir sin una capa de caché de utilizar CouchDB o MongoDB - ambos son más lentos para lectura sencilla / MySQL escribe que incluso. Sí, las bases de datos NoSQL son "cool", pero eso no quiere decir que puedes usar para algo que no estaban destinados a hacer.

Me gustaría ir con Memcached, ya que se trata sólo de lo más rápido y ligero encontrará, y es bien conocido y bien apoyado.

Otros consejos

Si usted está preocupado acerca de la apelación a la dirección y los inversores, y el sistema actual (que mencionas MySQL) obras, ¿por qué cambiar? Se está moviendo de un proyecto bastante estable a proyectos todavía en fase beta, y qué valor se le añadiendo si el sistema actual ya funciona?

Como se mencionó anteriormente, todos los recursos CouchDB contienen etags.

Lo que no se menciona es que se puede poner cualquier HTTP solución frente a CouchDB almacenamiento en caché y hacer que haga el almacenamiento en caché basado etag. De esta manera usted puede utilizar barniz, Nginx, lo que quiera.

También me gustaría echar un vistazo a Cassandra ( http://cassandra.apache.org/ ). He intentado MemcacheDB y CouchDB, de alguna manera encontró Cassandra más atractivo (No sé acerca de PHP ya que trabajo con ColdFusion). Aquí hay pregunta relacionada Cassandra PHP módulo

CouchDB ya hace algún almacenamiento en caché: cuando recibe un documento del servidor también envía el HTTP ETag cabecera (que es la misma que la revisión de documentos en CouchDB).

La próxima vez que el navegador solicita el mismo documento se envía la ETag recibido. Si el documento no ha sido modificado responde el servidor HTTP con el código 304 Not Modified y su navegador recupera el documento de su caché local.

Sin embargo, si usted tiene a los archivos de caché para diferentes tiempos en base a las preferencias del usuario, incluso si los cambios en los archivos de texto, probablemente su mejor opción es escribir código personalizado que envía las cabeceras HTTP approriate almacenamiento en caché en base a las preferencias del usuario.

Para completar otra buena opción es Redis . Se obtiene un rendimiento comparable al de Memcache pero Redis también es compatible con diversas estructuras de datos (hash, listas, juego, juegos ordenados) y operaciones atómicas.

Si MemCached con persistencia, que debe salir Redis. Tiene toda la funcionalidad memecached (y más), junto con la persistencia.

No he probado a mí mismo, pero yo no recuerdo haber leído que Redis también apoyó la API memcached también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top