Redis, base de datos noSql in-memory

03-06-2016
 
Redis Logo

Redis Logo

Redis, es una base de datos noSql ‘Open source’ in-memory. Es decir, que almacena los datos en memoria RAM, aunque también se puede configurar para que los datos persistan. Redis esta orientada a estructuras de datos(Strings, Hashes, Lists, Sets, etc.)

Para que quiero yo una base de datos como Redis

Redis es super rápida y tiene grandes aplicaciones en nuestros proyectos:

– Para implementar una cache compartida en alta disponibilidad. Además incorpora la lógica de que los registros puedan expirar.
– Habla HTTP, lo que quiere decir que software desarrollado con distintas tecnologías pueden hablar con ella(De hecho, tiene clientes para un montón de tecnologías).
– Es muy bueno para implementar ‘message brokers’ o ‘streams’ de datos.
– Es una navaja suiza para que diferentes aplicaciones trabajen juntas.

Usando Redis

Si queremos empezar a usar Redis lo primero será instalarla. En este caso la voy a instalar usando Docker, que hace que su instalación sea automática(Podéis aprender mas sobre docker aquí):

docker run --name “Servidor docker Test” -d redis	

Ahora que ya tenemos nuestro servidor docker funcionando ya podemos empezar a usarlo en nuestras aplicaciones. Vamos a desarrollar una aplicación Java usando la librería Jedis, podeis descargaros el Jar desde la siguiente URL http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22redis.clients%22%20AND%20a%3A%22jedis%22.

Con el siguiente script se ve claramente como usarlo, al probarlo comprobareis que es super rápido y practico trabajar con Redis:

import java.util.Date;

import redis.clients.jedis.Jedis;

public class RedisMain {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("172.17.0.4");
		
		/* Hacemos un ping a Redis */
		System.out.println( "Ping! "+jedis.ping() );
		
		/* Guardamos un String y añadimos un elemento a la lista */
		jedis.set("sessionId", "X894856A"+new Date().getTime() );
		jedis.lpush( "list", ""+new Date().getTime() );
		
		/* Comprobamos lo que tenemos guardado */
		System.out.println( "Mi Sessión es: "+jedis.get("sessionId") );
		System.out.println( "Mi Pila es: "+jedis.lrange("list", 0, -1) );
		}

}

Leave a Reply

© Albert Coronado Calzada