Usando Redis en NodeJS

Usar Redis hoy dia para hacer Caching de data que usamos constantemente es bien común y nodejs no se queda atras con esto. Por eso veremos un uso basico del mismo.

Redis tambien puede ser usado para implementar el patron Pub/Sub, donde nos subscribimos a ciertos eventos y así mismo ejecutar ciertas acciones en base a nuestra data obtenida.

Primero tenemos que instalar Redis en nuestro servidor, para instalarlo en Centos 6.5 (Servidor que uso) es cuestión de esto:

yum install redis 

Una vez instalado a tenemos que iniciar nuestro servidor:

redis-server

Todo funcionando bien con nuestro servidor Redis corriendo podemos probar el mismo ejecutando estos commando de prueba:

redis-cli ping

Tambien podemos entrar al CLI que nos brinda Redis Redis-CLI y ejecutar uno de sus comandos

redis-cli 

Confirmado que todo en Redis esta bien, podemos pasar a trabajar con nodejs.

Instalando redis en nodejs:

npm install redis --save-dev

Tipo de datos

Redis contiene / Soporta una lista reducida de tipos de datos:

String – Valores simples

List – Lista de valores que deben de ser string, no puedes tener una lista dentro de una lista.

Sets – Lista de string a diferencia de que no podras tener valores repetidos.

Hashes – Diccionarios

Instalado es cuestion de crear algún script.


#incluimos redis a nuestro script
var redis = require('redis');

#creamos un cliente
var redisClient = redis.createClient();


redisClient.on('connect', function() {
    console.log('Conectado a Redis Server');
});

Si ejecutamos esto debería de salir esto en la consola.

Conectado a Redis Server

Almacenando algunos datos

#incluimos redis a nuestro script
var redis = require('redis');

#creamos un cliente
var redisClient = redis.createClient();


redisClient.on('connect', function() {
    console.log('Conectado a Redis Server');
});

redisClient.set("key1", "hola mundo1");
redisClient.set("key2", "hola mundo2");
redisClient.set("key3", "hola mundo2");

redisClient.get("key1", function(err, value) {
    // retornara null si la key no existe
    console.log(value);
});

Podemos comprobar si tenemos una Key almacenada en Redis mediante este comando:

    redisClient.exists(key,function(err,reply){
        if(err != null){
        //error
        }
    
    });

Podemos almacenar listas anidadas a un identificador (Key)

redisClient.set(["key1", "val1","val2","val3","val4"]);

Tomara el primer elemento del array y lo usara como un identificar y los demás elementos serán los valores.

Para obtener estos valores almacenados lo hacemos de esta manera:

redisClient.lrange(key, 0, -1, function(err, values) {
    console.log(values)
});

Referencia

Redis Project
Redis Types

Redis NodeJS Client
Ejemplo completo

Share on Google+Share on LinkedInShare on RedditShare on TumblrTweet about this on TwitterShare on Facebook