Cliente Redis para C++: conexión, instalación y ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cliente Redis para C++: guía completa para trabajar con hiredis



Redis es una popular base de datos en memoria utilizada para almacenamiento en caché, gestión de sesiones, colas de mensajes y mucho más. Para interactuar con Redis desde aplicaciones en C++ existen varias bibliotecas, pero la más común y confiable es hiredis. Esta biblioteca minimalista, rápida y estable proporciona una API C pura que se integra fácilmente en proyectos C++. En este artículo analizaremos en detalle cómo instalar hiredis, conectarla a un proyecto, realizar operaciones básicas con Redis y manejar posibles errores.



¿Qué es hiredis?



hiredis es el cliente C oficial para Redis, desarrollado por el mismo equipo que creó Redis. Soporta:

  • Conexiones síncronas y asíncronas
  • <>Reconexión automática en caso de desconexión
  • Transmisión de comandos en lote (pipelining)
  • Trabajo con datos binarios
  • Soporte completo del protocolo Redis (RESP2 y RESP3)


Aunque hiredis está escrito en C, es perfectamente adecuado para proyectos C++: se puede envolver en clases RAII, usar con modismos modernos de C++11/17 y combinar fácilmente con otras bibliotecas.



Instalación de hiredis



La forma más sencilla de instalarlo es a través del gestor de paquetes del sistema. Ejemplos para diferentes SO:



Ubuntu / Debian

sudo apt updatesudo apt install libhiredis-dev


macOS (Homebrew)

brew install hiredis


Windows (vcpkg)

vcpkg install hiredis


Si prefiere compilar hiredis desde el código fuente (por ejemplo, para una configuración personalizada):

git clone https://github.com/redis/hiredis.gitcd hiredismakesudo make install


Conexión al servidor Redis



Después de instalar hiredis, puede conectarla a su proyecto C++. Asegúrese de que en la configuración del compilador se especifiquen las rutas a los archivos de encabezado y las bibliotecas:

  • -I/usr/include (o la ruta a hiredis.h)
  • -lhiredis para el enlace


Ejemplo de código mínimo para conectarse a Redis ejecutándose en localhost:6379:

#include <hiredis/hiredis.h>#include <iostream>

int main() { // Conectarse a Redis redisContext *c = redisConnect("127.0.0.1", 6379); if (c == nullptr || c->err) { if (c) { std::cerr << "Error de conexión: " << c->errstr << std::endl; redisFree(c); } else { std::cerr << "No se pudo asignar memoria para el contexto" << std::endl; } return 1; } std::cout << "¡Conexión a Redis establecida!" << std::endl;

// Liberar recursos redisFree(c); return 0;}


Envío de comandos y obtención de respuestas



hiredis proporciona la función redisCommand para enviar comandos. Devuelve un puntero a redisReply, que contiene el resultado de la ejecución. Siempre verifique que la respuesta no sea nullptr y libere la memoria después de usarla.



Veamos las operaciones básicas: establecer y obtener un valor de cadena.



#include <hiredis/hiredis.h>#include <iostream>#include <string>

int main() { redisContext *c = redisConnect("127.0.0.1", 6379); if (!c || c->err) { std::cerr << "Error de conexión: " << (c ? c->errstr : "null") << std::endl; return 1; }

// Establecer la clave "myname" con el valor "C++ Developer" redisReply *reply = (redisReply*)redisCommand(c, "SET myname 'C++ Developer'"); if (reply == nullptr) { std::cerr << "Error al ejecutar el comando SET" << std::endl; redisFree(c); return

Recommendations