Cliente Redis para C++: visão geral e guia prático
\n\nRedis é um banco de dados in-memory de alto desempenho, amplamente utilizado para cache, gerenciamento de sessões, filas de mensagens e análises em tempo real. Para interagir com Redis na linguagem C++, existem várias bibliotecas maduras. Neste artigo, abordaremos as duas mais populares: hiredis (cliente C oficial, facilmente integrável em C++) e Redis++ (cliente C++17 moderno com sintaxe conveniente). Você aprenderá como instalar, conectar e usar essas ferramentas em seus projetos.
\n\n1. Biblioteca hiredis
\n\nhiredis é um cliente C minimalista, desenvolvido pela mesma equipe do Redis. É leve, rápido e suporta requisições síncronas e assíncronas. Para programadores C++, hiredis serve como uma excelente base, pois pode ser chamada diretamente do código C++, encapsulando-a em objetos RAII.
\n\nInstalação do hiredis
\nA instalação do hiredis é feita através do gerenciador de pacotes ou compilação a partir do código fonte:
\n# Ubuntu/Debian\nsudo apt-get install libhiredis-dev\n\n# macOS (Homebrew)\nbrew install hiredis\n\n# Compilação a partir do código fonte\ngit clone https://github.com/redis/hiredis.git\ncd hiredis\nmake\nsudo make install\n\nConexão e exemplo básico
\nPara trabalhar com hiredis, é necessário incluir o arquivo de cabeçalho e linkar com a biblioteca. Abaixo está um exemplo de conexão ao Redis e execução de comandos simples:
\n#include <iostream>\n#include <hiredis/hiredis.h>\n\nint main() {\n // Conexão ao Redis em localhost:6379\n redisContext *c = redisConnect("127.0.0.1", 6379);\n if (c == nullptr || c->err) {\n std::cerr << "Erro de conexão: " << c->errstr << std::endl;\n return 1;\n }\n\n // Envio do comando SET\n redisReply *reply = (redisReply*)redisCommand(c, "SET key1 Hello");\n if (reply->type == REDIS_REPLY_STATUS) {\n std::cout << "SET: " << reply->str << std::endl;\n }\n freeReplyObject(reply);\n\n // Envio do comando GET\n reply = (redisReply*)redisCommand(c, "GET key1");\n if (reply->type == REDIS_REPLY_STRING) {\n std::cout << "GET: " << reply->str << std::endl;\n }\n freeReplyObject(reply);\n\n // Liberação de recursos\n redisFree(c);\n return 0;\n}\nA compilação é feita com a flag -lhiredis:
g++ -o test test.cpp -lhiredis\n\n2. Biblioteca Redis++ (sw/redis++ / redox)
\n\nRedis++ (também conhecida como sw/redis++) é um cliente C++17 moderno que oferece uma interface type-safe, suporte a pool de conexões, transações, pipeline e Redis Cluster. Se você prefere escrever em C++ "puro" sem estilo C, Redis++ é a escolha ideal.
Instalação do Redis++
\nA instalação é feita via vcpkg, Conan ou compilação a partir do código fonte:
\n# Via vcpkg\nvcpkg install redis-plus-plus\n\n# Via Conan\nconan install redis++/1.3.3@\n\n# Compilação a partir do código fonte\ngit clone https://github.com/sewenew/redis-plus-plus.git\ncd redis-plus-plus\nmkdir build && cd build\ncmake ..\nmake\nsudo make install\n\nExemplo de uso do Redis++
\nA biblioteca usa o objeto Redis para trabalhar com comandos:
#include <iostream>\n#include <sw/redis++/redis++.h>\n\nint main() {\n try {\n // Criação do cliente\n sw::redis::Redis redis("tcp://127.0.0.1:6379");\n\n // Definição de valor\n redis.set("mykey", "Hello, Redis++!");\n\n // Obtenção de valor\n auto val = redis.get("mykey");\n if (val) {\n std::cout << "GET: " << *val << std::endl;\n }\n\n // Trabalho com hashes\n redis.hset("user:1", "name", "Alice");\n redis.hset("user:1", "age" Também na biblioteca
Validação de dados em Rust: biblioteca validator
Autorização e Autenticação em Java: Spring Security e JWT
Processamento de Imagens em Java: Bibliotecas, Ferramentas e Exemplos de Código
Trabalhando com CSV em Node.js: bibliotecas csv-parser e csv-writer
Configuração de aplicações Go (Golang): bibliotecas e ferramentas