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) ); } }