Client Redis pour C++ : connexion, installation et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Client Redis pour C++ : guide complet pour travailler avec hiredis



Redis est une base de données in-memory populaire utilisée pour la mise en cache, la gestion des sessions, les files d'attente de messages et bien plus encore. Pour interagir avec Redis depuis des applications C++, il existe plusieurs bibliothèques, mais la plus répandue et la plus fiable est hiredis. Cette bibliothèque minimaliste, rapide et stable fournit une API C pure qui s'intègre facilement dans les projets C++. Dans cet article, nous allons détailler comment installer hiredis, la connecter à un projet, effectuer des opérations de base avec Redis et gérer les erreurs possibles.



Qu'est-ce que hiredis ?



hiredis est le client C officiel pour Redis, développé par la même équipe que Redis lui-même. Il prend en charge :

  • Les connexions synchrones et asynchrones
  • La reconnexion automatique en cas de rupture de connexion
  • La transmission en flux de commandes (pipelining)
  • Le travail avec des données binaires
  • La prise en charge complète du protocole Redis (RESP2 et RESP3)


Bien que hiredis soit écrit en C, il convient parfaitement aux projets C++ : il peut être encapsulé dans des classes RAII, utilisé avec les idiomes modernes C++11/17 et facilement combiné avec d'autres bibliothèques.



Installation de hiredis



La méthode la plus simple d'installation est via le gestionnaire de paquets système. Exemples pour différents systèmes d'exploitation :



Ubuntu / Debian

sudo apt updatesudo apt install libhiredis-dev


macOS (Homebrew)

brew install hiredis


Windows (vcpkg)

vcpkg install hiredis


Si vous préférez compiler hiredis à partir des sources (par exemple, pour une configuration personnalisée) :

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


Connexion au serveur Redis



Après l'installation de hiredis, vous pouvez la connecter à votre projet C++. Assurez-vous que les chemins vers les fichiers d'en-tête et les bibliothèques sont spécifiés dans les paramètres du compilateur :

  • -I/usr/include (ou le chemin vers hiredis.h)
  • -lhiredis pour l'édition de liens


Exemple de code minimal pour se connecter à Redis fonctionnant sur localhost:6379 :

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

int main() { // Connexion à Redis redisContext *c = redisConnect("127.0.0.1", 6379); if (c == nullptr || c->err) { if (c) { std::cerr << "Erreur de connexion : " << c->errstr << std::endl; redisFree(c); } else { std::cerr << "Impossible d'allouer la mémoire pour le contexte" << std::endl; } return 1; } std::cout << "Connexion à Redis établie !" << std::endl;

// Libération des ressources redisFree(c); return 0;}


Envoi de commandes et réception de réponses



hiredis fournit la fonction redisCommand pour envoyer des commandes. Elle retourne un pointeur vers redisReply, qui contient le résultat de l'exécution. Vérifiez toujours que la réponse n'est pas nulle et libérez la mémoire après utilisation.



Examinons les opérations de base : définition et récupération d'une valeur de chaîne.



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

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

// Définition de la clé "myname" avec la valeur "C++ Developer" redisReply *reply = (redisReply*)redisCommand(c, "SET myname 'C++ Developer'"); if (reply == nullptr) { std::cerr << "Erreur d'exécution de la commande SET" << std::endl; redisFree(c); return

Recommendations