Conexión de Microservicios a Redis y Gestión de Caché

Clase 26 de 29Curso de Node.js: Autenticación, Microservicios y Redis

Resumen

¿Cómo conectar un micro servicio con un servidor Redis?

Conectar un micro servicio a un servidor Redis puede ser un desafío emocionante, especialmente para los desarrolladores que desean aprovechar al máximo las capacidades de almacenamiento en memoria que ofrece Redis. Para lograrlo, necesitas seguir estos pasos esenciales y entender las configuraciones básicas. A continuación, te guiamos en el proceso utilizando librerías y herramientas con las que trabajarás para establecer esta conexión.

¿Qué necesitas para iniciar con Redis?

  • Instalación de un servidor Redis: Puedes instalar Redis localmente o utilizar un servicio en línea que ofrezca pruebas gratuitas de Redis. Muchas plataformas populares pueden proporcionarte la posibilidad de trabajar con bases de datos de Redis online, brindando información básica como la dirección, el puerto y las credenciales de acceso.

  • Información relevante de la base de datos: Debes obtener los detalles específicos de la base de datos, como el host o la dirección, el puerto y la contraseña. Esta información será clave para la configuración del cliente que se conectará a Redis desde tu aplicación.

¿Cómo instalar la librería de Redis en tu aplicación?

Usamos npm en esta guía, pero si trabajas con otro gestor de paquetes, asegúrate de adaptar los comandos:

npm install redis

Esto instalará la librería necesaria para interactuar con Redis desde tu aplicación.

¿Cómo configurar la conexión a Redis?

Una vez instalada la librería, se crea un cliente de conexión. Aquí te mostramos cómo definir las configuraciones básicas:

const redis = require('redis');
const client = redis.createClient({
  host: 'tu_direccion_redis',
  port: 'tu_puerto_redis',
  password: 'tu_contraseña_redis'
});

¿Cómo estructurar la configuración de manera segura?

Es fundamental que guardes las configuraciones, especialmente credenciales, en un archivo separado o una variable de entorno para evitar exposición innecesaria en el código:

// Archivo de configuración (config.js)
module.exports = {
  redisHost: 'tu_direccion_redis',
  redisPort: 'tu_puerto_redis',
  redisPassword: 'tu_contraseña_redis'
};

// Uso en tu aplicación
const { redisHost, redisPort, redisPassword } = require('./config');
const client = redis.createClient({ host: redisHost, port: redisPort, password: redisPassword });

¿Cómo implementar las funciones clave para acceder a Redis?

Por último, puedes crear funciones que lidien con diferentes operaciones en Redis. Aquí te damos un ejemplo para listar y añadir entradas, manejando estados de caché:

// Función para listar datos
function listarDatos(entidad, tabla, callback) {
  client.get(tabla, (err, data) => {
    if (err) return callback(err);
    if (data) {
      callback(null, JSON.parse(data));
    } else {
      callback(null, []);
    }
  });
}

// Función para añadir datos
function addData(tabla, data) {
  const key = `${tabla}_${data.id}`;
  client.set(key, JSON.stringify(data), 'EX', 10, (err) => {
    if (err) throw err;
  });
}

Con estas configuraciones básicas y funciones, tu aplicación estará lista para interactuar de manera efectiva con un servidor Redis, almacenando y recuperando datos de forma eficiente y segura. Asegúrate de manejar adecuadamente los errores y ajustar los tiempos de expiración de cache según sea necesario para tu aplicación. ¡Sigue explorando y experimentando con Redis en tus proyectos!