NoSQL (IV): Java + Redis

La tercer de las demos que vamos a realizar en esta serie de artículos y la última antes de empezar con la parte más teórica, es la de Redis. Podéis encontrar la página del proyecto en este enlace. Redi es una base de datos de “clave-valor”, como en las ocasiones anteriores, ya veremos que es esto más adelante. Como dato curioso, parece ser que analizando el conjunto de habilidades de muestra la red social profesional de Linkedin, parece ser que Redis es la segunda base de datos NoSQL que más sale por detrás de MongoDB. No se si creérmelo o no, pero hay está el dato. He visto algunas otras gráficas y suele ser la cuarta o quinta, lo que me parece más acorde con la idea predefinida que tenía yo antes de empezar a investigar sobre NoSQL. Como todo, si uno busca lo suficiente, es capaz de encontrar análisis que apoyen casi cualquier cosa.

Instalando Redit

Al igual que en las dos demos anteriores, yo estoy trabajando sobre un Windows 7, y para mi desilusión, los únicos instalables para este sistema (win32/win64) que he encontrado en la página del proyecto Redis parecen no oficiales,  siendo los instalables de la versión oficial solo para sistemas Linux (supongo que Unix también). Así que, aquí me he enfrentado a dos opciones, o instalar una máquina virtual para desplegar la base de datos o intentarlo con algún sistema tipo cygwin o similar (Nota: No se así funcionará, es solo una idea). Yo por mi parte como tengo varias máquinas virtuales ya montadas y en ejecución, me he inclinado por la primera opción. Vosotros elegid con la que más cómodos os sintáis.

Tras tener clara la opción elegida, lo único que tenemos que hacer es descargar de la página del proyecto la última versión estable de Redis que deberemos compilar siguiendo las siguientes instrucciones (figuran en la página del proyecto):

promt> tar –xzf redis-x.x.x.tar.gz

promt> cd redis-x.x.x

promt> make

Con esto compilaremos el código fuente y obtendremos los ejecutables que nos permitirán empezar a trabajar con Redis (estarán alojados en src). Al igual que pasó anteriormente con Cassandra, no he visto en la página del proyecto ninguna referencia a un interfaz de administración web, es más, leyendo la documentación da la impresión de que todas las tareas de administración se realizan bajo consola. Además, en este caso, no conozco ninguna interfaz web de terceros que podamos instalar y utilizar. Por este tipo de cosas, es por lo que me cuesta un poco creer que en Linkedin sea la segunda clasificada.

Una vez compilados los ficheros fuentes vamos a probar la base de datos a ver si la hacemos funcionar. Para ello solo tenemos que ejecutar el servidor, el cliente y tratar de insertar algún dato en la base de datos.

promt> src/redis-server

El resultado tras la ejecución será algo así:

0 clients connected (0 slaves), xxxxxxxx bytes in use

Luego accedemos al cliente, el cual nos mostrará el promt de Redis, y ejecutamos una inserción y una consulta:

promt> src/redis-cli

redis-promt> set firstvar “Hello World!”

redis-promt> get firstvar

Si hasta aquí todo ha ido bien, vamos a pasar a implementar nuestra primera clase Java.

Conectando desde Java

Al igual que el otro día vamos a crear una nueva clase Java para realizar nuestra implementación y después a añadir la librería que nos permitirá conectar, algo así como el Driver. En este caso, en la propio página del proyecto, el la sección de Clients, tenemos una gran cantidad de clientes en muchísimos lenguajes (quizás por esto sea la segunda en Linkedin). En concreto, para Java hay cuatro diferentes, yo he decidido coger el de Jedis, entre otras cosas, porque parece el recomendado por la propia página del proyecto (tiene la estrellita al lado). No tenemos más que descargarlo y añadirlo a nuestro proyecto como hemos hecho las veces anteriores. Tras esto, solo restará incluir nuestro código.

public static void main(String[] args) {
Jedis jedis = new Jedis("mytestserver");
jedis.connect();
// Store value
jedis.set("hellovar", "Hello World!");
// Recover and print value
System.out.println(jedis.get("hellovar"));
}

El código como podéis ver es el más simple de todos hasta ahora.

Tras su ejecución veremos el siguiente resultado:

Hello World!

Fácil, ¿no? Como podéis ver este tipo de clave valor, es el más simple e intuitivo de todos.

Bueno, hasta aquí hemos llegado con las demos previas a la teoría. Después de la teoría ya haremos algunos ejemplos más complejos y hablaremos un poco de como administrar las bases de datos, desplegar varias y demás. Id cogiendo fuerzas para la parte teórica. Nos vemos.

NoSQL (IV): Java + Redis

3 thoughts on “NoSQL (IV): Java + Redis

  1. It is truly a nice and helpful piece of information. Iˇ¦m satisfied that you just shared this useful information with us. Please keep us informed like this. Thank you for sharing.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.