3

RethinkDB, la revolución de NoSQL, qué es y cómo instalarlo

6519Puntos

hace 6 años

RethinkDB

RethinkDB es una base de datos que desde Sillicon Valley está revolucionando el mercado en el mundo de bases de datos no relacionales o NoSQL.

RethinkDB es una base de datos orientada a documentos (usando el formato JSON), el lenguaje de consulta que utiliza el motor es ReQL, siendo este lenguaje muy intuitivo comparado con SQL y Javascript en MongoDB.

RethinkDB

Algunas características de RethinkDB

  • Soporte a Join en las tablas.
  • Dashboard web integrado, al estilo de CouchDB pero optimizado para la administración de las bases de datos y el servidor.
  • Tiene soporte para callback al cambiar una tabla, devolviendo el último cambio.
  • Fácil escalamiento horizontal.
  • Soporte para Docker.

Instalación de RethinkDB desde Docker

Para no entrar en detalles para la instalación en muchos sistemas operativos, decidí usar la imagen de Docker que han creado los colaboradores de RethinkDB.

La imagen la pueden encontrar en https://registry.hub.docker.com/_/rethinkdb/, desde el sistema pueden descargar la imagen con el comando: docker pull rethinkdb.

Ya con la imagen en el sistema, procedemos a crear la instancia de RethinkDB, cabe destacar que debemos tener un directorio para guardar las bases de datos, esta será montada como volumen en el container.

Ejecutamos el siguiente comando para arrancar el contenedor:

$ docker run --name rethinkdb-platzi -v "/home/yograterol/data:/data" -d rethinkdb

En este punto ya tenemos RethinkDB corriendo en Docker, para ingresar al dashboard necesitamos saber la IP del container con el comando inspect.

$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' rethinkdb-platzi

El resultado es una IP privada, que solo será accedida desde el host u otro container de Docker. Ejemplo, 172.17.0.2 con esta IP vamos al navegador y accedemos a 172.17.0.2:8080.

Dashboard de RethinkDB

Desde este dashboard podemos hacer todas las operaciones básicas como crear tablas, documentos, administrar un cluster de RethinkDB, ver los logs.

Drivers de RethinkDB

Para usar RethinkDB podemos usar directo el dashboard, para guardar la información, pero no tiene mucho sentido si no podemos usar las bases de datos en nuestros lenguajes preferidos, por eso existen los drivers, que permiten conectarse e interactuar con un servidor o cluster de RethinkDB.

Existen una serie de drivers, la mayoría de ellos soportados por la comunidad directamente, para usar en muchos lenguajes de programación, los oficiales son para los lenguajes Javascript, Ruby y Python, la lista completa de se puede conseguir en http://rethinkdb.com/docs/install-drivers/.

En mi opinión RethinkDB tiene un futuro prometedor, resuelve problemas en bases de datos orientadas a documentos, y junta características que lo hacen ser una base de datos perfecta para entornos real time, o que necesiten escalado horizontal muy rápido y fácil.

En Platzi puedes aprender a usar esta gran base de datos con mucho futuro, estaré trabajando en una serie de entradas usando el cliente de RethinkDB para Python.

Yohan
Yohan
yograterol

6519Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
0
4702Puntos

quiero un curso en español 😃

0
4133Puntos
4 años

Igual estoy interesado en el curso de RethinkDB, trate de ingresar a la versión en ingles, pero no esta disponible.

Puedes ver un poco de RethinkDB en el Módulo de base de datos con RethinkDB del Curso Profesional de Node.js y JavaScript impartido por Julian Duque, realmente esta muy interesante.

0
4133Puntos
4 años

Igual estoy interesado en el curso de RethinkDB, trate de ingresar a la versión en ingles, pero no esta disponible.

Puedes ver un poco de RethinkDB en el Módulo de base de datos con RethinkDB del Curso Profesional de Node.js y JavaScript impartido por Julian Duque, realmente esta muy interesante.

0
1277Puntos

Buenas, comunidad.

Tengo este inconveniente al generar el connect con la base de datos en Rethinkdb

ReqlDriverError { frames: undefined, message: Could not connect to [object Object]:[object Object].␊ connect ECONNREFUSED 127.0.0.1, msg: Could not connect to [object Object]:[object Object].␊ connect ECONNREFUSED 127.0.0.1, name: ‘ReqlDriverError’, }

Me pueden ayudar, por favor!!