valor - redis rendimiento
¿Cuándo utilizar un almacén de clave/valor como Redis en su lugar/junto a una base de datos SQL? (4)
He leído cosas geniales sobre tiendas clave / de valor como Redis, pero parece que no puedo averiguar cuándo es el momento de usarlo en una aplicación.
Digamos que estoy diseñando una aplicación basada en la web; Sé qué pila voy a usar para el front-end, back-end, base de datos, etc. ¿Cuáles son algunos escenarios en los que iría "oh, también necesitamos Redis para X, Y o Z".
Apreciaría los ejemplos de node.js así como los ejemplos de no node.js.
Parece que no puedo averiguar cuándo es el momento de usarlo en una aplicación.
Te recomendaría que leas this tutorial que contiene también casos de uso. Dado que redis está más bien orientado a la memoria, es muy bueno para los datos en tiempo real que se actualizan con frecuencia, como el almacén de sesiones, la base de datos del estado, las estadísticas, el almacenamiento en caché y sus estructuras de datos avanzadas que ofrecen versatilidad para muchos otros escenarios.
Sin embargo, Redis no es un sustituto NoSQL para las bases de datos relacionales clásicas, ya que no admite muchas características estándar del mundo RDBMS, como la consulta de sus datos, que podría ralentizarlo. Los reemplazos son más bien bases de datos de documentos como MongoDB o CouchDB y redis es excelente para complementar una funcionalidad específica donde la velocidad y el soporte para estructuras de datos avanzadas son útiles.
Creo que nada explica mejor los casos de uso de Redis que este artículo: http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html
¡Apuesto a que tendrás un aha! momento . ;)
Una cita de un lector anterior:
He leído sobre Redis antes y escuché cómo las empresas lo están utilizando, pero nunca entendí por completo su propósito. Después de leer esto, puedo decir que entiendo a Redis ahora y cómo es útil. Sorprendente que después de escuchar tanto sobre todo lo que tomó fue un artículo relativamente simple.
Una cosa de la mano es que Redis no es una base de datos relacional. Si vas a necesitar un "JOIN" de SQL, entonces no querrás usar Redis ni ninguna otra base de datos no relacional. Redis es más rápido que la mayoría de las bases de datos relacionales. Si solo va a hacer consultas de par clave: valor, entonces querrá usar Redis.
Me encantaría usar redis en los proyectos en tiempo real. Recientemente realicé un sistema de seguimiento de gps que se creó previamente en mysql como base de datos.
VENTAJA
- Cada vez que el rastreador transmite datos no necesito abrir la conexión de mysql y almacenarla. Podemos guardarlo en redis y luego migrar a mysql usando algún otro proceso. Esto evitará la conexión simultánea de mutiple tracker a mysql.
- Puedo publicar todos esos datos gps y otros clientes (javascript / android) pueden suscribirse en tiempo real utilizando la cola de mensajes basada en redis
- Puedo activar alertas en tiempo real