Creación de Aplicaciones Node.js con Redis y Promesas

Clase 18 de 20Curso de Azure Cache para Redis

Resumen

¿Cómo crear una aplicación de consola con Node.js y Redis?

Para desarrollar una aplicación de consola que se conecte a un servicio de Redis usando Node.js, es fundamental comprender cómo interactúan las diferentes librerías y cómo implementar comandos básicos de I/O en Redis. En esta guía, te explicamos cómo instalar y configurar tu entorno para conectar Node.js con Redis, y te proporcionamos ejemplos prácticos de su implementación.

¿Qué necesitamos instalar?

El primer paso es preparar nuestro entorno de desarrollo. Aquí es esencial contar con Node.js y dos librerías fundamentales:

  1. Redis: Cliente ligero para Node.js.
  2. Bluebird: Librería recomendada para convertir funciones no asíncronas a promesas, dado que el cliente de Redis no soporta promesas por defecto.

Para instalar estas librerías, debemos usar el siguiente comando en la terminal:

npm install redis bluebird

¿Cómo configurar Visual Studio Code?

Una vez instaladas las librerías, abrimos Visual Studio Code. Este IDE reconocerá automáticamente los paquetes que hayas instalado y sugerirá cualquier otra instalación necesaria para trabajar con Node.js.

Para este proyecto, crearemos un nuevo archivo llamado redis-test.js. En él, importaremos las librerías mediante el uso de require:

const redis = require('redis');
const bluebird = require('bluebird');

Dado que Redis no soporta promesas originalmente, usaremos Bluebird para habilitar esta funcionalidad:

bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);

¿Cómo conectar el cliente de Redis?

Para inicializar un cliente de Redis, debemos definir variables de entorno que contengan detalles sobre el servidor y la autenticación. A continuación, en el archivo redis-test.js, configuramos la conexión:

const connection = redis.createClient(
  6380,
  process.env.REDIS_HOSTNAME,
  {
    auth_pass: process.env.REDIS_KEY,
    tls: { servername: process.env.REDIS_HOSTNAME }
  }
);

¿Cómo probar la conexión con Redis?

Una vez configurada la conexión, es momento de probarla. Utilizaremos el comando ping asíncrono para verificar que la conexión es exitosa:

async function testCacheConnection() {
  try {
    const response = await connection.pingAsync();
    console.log(response);  // Should print "pong"
  } catch (error) {
    console.error('Error connecting to Redis:', error);
  } finally {
    process.exit();
  }
}

testCacheConnection();

¿Cómo ejecutar comandos básicos de Redis?

Adicionalmente al comando ping, es común usar comandos como set y get para almacenar y recuperar claves:

async function manipulateData() {
  try {
    // Obtener datos
    const response1 = await connection.getAsync('plasticKey');
    console.log('Value:', response1);

    // Establecer nuevos datos
    const newValue = `Hello from Node.js ${Math.floor(Math.random() * 1000)}`;
    await connection.setAsync('plasticKey', newValue);

    // Verificar nuevos datos
    const response2 = await connection.getAsync('plasticKey');
    console.log('New Value:', response2);
  } catch (error) {
    console.error('Command error:', error);
  } finally {
    process.exit();
  }
}

manipulateData();

¿Cuál es la tarea para seguir aprendiendo?

Te animamos a continuar explorando Redis con Node.js. Como ejercicio práctico, implementa comandos para manipular listas, hashes, y práctica con múltiples get y set. Para los usuarios más avanzados, intenta serializar un objeto en JSON y manejarlo directamente en Redis.

Este aprendizaje no sólo fortalecerá tus habilidades técnicas sino que te acercará un paso más a la maestría en desarrollo de aplicaciones con Node.js y Redis. ¡No te detengas y sigue explorando el vasto mundo del desarrollo!