tutorial example espaƱol descargar databases nosql redis distributed

nosql - example - Redis, distribuidos o no?



nosql tutorial (1)

Con respecto a la pregunta 1, Redis es un almacén en memoria con algunas capacidades de persistencia. Todo su conjunto de datos debe caber en la memoria. Por lo tanto, una única instancia está limitada por la memoria máxima de su servidor. Ahora, también puede compartir los datos en varias instancias de Redis, que se ejecutan en varios servidores. Siempre que tenga el presupuesto para ello, es perfectamente posible almacenar 100 GB - 1 TB de datos en un conjunto de cajas Redis. Tenga en cuenta que sharding no es automático: debe ser implementado por el cliente o la aplicación. También impone algunas restricciones a las operaciones que puede realizar con sus datos (por ejemplo, no sería posible en el lado del servidor calcular las intersecciones de dos conjuntos alojados por diferentes instancias de Redis).

Con respecto a la pregunta 2, una sola instancia de Redis no es un sistema distribuido. Es una tienda centralizada remota. Ahora, al usar varias instancias de Redis, puedes construir un sistema distribuido. Debido a que es un enfoque de "hágalo usted mismo", puede decidir convertirlo en un sistema de CP o AP.

Una sola instancia puede replicar su actividad en las instancias esclavas (que, por lo tanto, son consistentes con el maestro). La aplicación puede optar por conectarse siempre al maestro para leer y escribir. En ese caso, puede obtener un sistema de CP. También puede escribir en el maestro y leer de todas las instancias (incluidos los esclavos), por lo que puede obtener un sistema AP. Dije "puede", porque requiere un trabajo significativo para construir dichos sistemas sobre Redis.

Puede combinar fragmentación y replicación maestro / esclavo para construir el sistema distribuido que necesita. Sin embargo, Redis solo proporciona ladrillos básicos para hacer esto. Especialmente, ofrece muy poco para lidiar con la resiliencia y la HA (y aborda la P en el teorema de la PAC). En mi opinión, Redis Sentinel por sí solo no es suficiente para admitir una configuración de HA Redis, ya que solo cubre la administración de roles. Necesita complementarlo con un administrador de recursos y poner mucha lógica en el cliente / aplicación.

Hay un proyecto en curso llamado Redis Cluster , cuyo propósito es proporcionar un sistema distribuido minimalista y listo para usar, pero aún carece de muchas cosas y aún no se puede utilizar para fines de producción.

Si necesita una tienda distribuida comercializada, Redis probablemente no sea una buena opción. Cassandra, Riak, MongoDB, Couchbase, Aerospike, MySQL Cluster, Oracle NoSQL, etc. lo atenderán mejor. Sin embargo, si desea crear su propio sistema especializado, Redis es un componente excelente para desarrollar.

Pregunta 1: Sé que Redis carga todos los datos en la memoria, mejorando así la velocidad de lectura / escritura. Entonces, ¿significa que si el tamaño de mi memoria es 2G, el tamaño máximo del conjunto de datos no debe ser mayor que 2G? Ahora mi base de datos tiene datos de 100G +, la memoria de mi servidor no puede ser más grande que 32G, entonces, ¿Redis ya no es adecuado para mí?

Pregunta 2: ¿Es Redis un sistema distribuido o no? Cuando uso Google para buscar la propiedad de redis en CAP, dice que Redis no es un sistema distribuido, por lo que no tiene nada que ver con CAP . Pero desde Wikipedia , dice que tiene una arquitectura maestro-esclavo, un maestro con muchos esclavos. Qué confuso.