Cliente Redis para C++: conexão, instalação e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Cliente Redis para C++: guia completo para trabalhar com hiredis



Redis é um popular banco de dados in-memory, usado para cache, gerenciamento de sessões, filas de mensagens e muito mais. Para interagir com Redis a partir de aplicações em C++, existem várias bibliotecas, mas a mais comum e confiável é o hiredis. Esta biblioteca minimalista, rápida e estável fornece uma API C pura, que é facilmente integrada em projetos C++. Neste artigo, vamos detalhar como instalar o hiredis, conectá-lo ao projeto, executar operações básicas com Redis e tratar possíveis erros.



O que é hiredis?



hiredis é o cliente C oficial para Redis, desenvolvido pela mesma equipe que criou o Redis. Ele suporta:

  • Conexões síncronas e assíncronas
  • Reconexão automática em caso de queda de conexão
  • Transmissão de comandos em pipeline (pipelining)
  • Trabalho com dados binários
  • Suporte completo ao protocolo Redis (RESP2 e RESP3)


Apesar de o hiredis ser escrito em C, ele é perfeitamente adequado para projetos C++: pode ser encapsulado em classes RAII, usado com expressões modernas do C++11/17 e facilmente combinado com outras bibliotecas.



Instalação do hiredis



A maneira mais simples de instalar é através do gerenciador de pacotes do sistema. Exemplos para diferentes SOs:



Ubuntu / Debian

sudo apt updatesudo apt install libhiredis-dev


macOS (Homebrew)

brew install hiredis


Windows (vcpkg)

vcpkg install hiredis


Se preferir compilar o hiredis a partir do código-fonte (por exemplo, para configuração personalizada):

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


Conexão ao servidor Redis



Após instalar o hiredis, você pode conectá-lo ao seu projeto C++. Certifique-se de que as configurações do compilador incluam os caminhos para os arquivos de cabeçalho e bibliotecas:

  • -I/usr/include (ou caminho para hiredis.h)
  • -lhiredis para linkagem


Exemplo de código mínimo para conectar a um Redis rodando em localhost:6379:

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

int main() { // Conecta ao Redis redisContext *c = redisConnect("127.0.0.1", 6379); if (c == nullptr || c->err) { if (c) { std::cerr << "Erro de conexão: " << c->errstr << std::endl; redisFree(c); } else { std::cerr << "Não foi possível alocar memória para o contexto" << std::endl; } return 1; } std::cout << "Conexão com Redis estabelecida!" << std::endl;

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


Envio de comandos e recebimento de respostas



O hiredis fornece a função redisCommand para enviar comandos. Ela retorna um ponteiro para redisReply, que contém o resultado da execução. Sempre verifique se a resposta não é nullptr e libere a memória após o uso.



Vamos considerar operações básicas: definir e obter um valor de string.



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

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

// Define a chave "myname" com o valor "C++ Developer" redisReply *reply = (redisReply*)redisCommand(c, "SET myname 'C++ Developer'"); if (reply == nullptr) { std::cerr << "Erro ao executar o comando SET" << std::endl; redisFree(c); return

Recommendations