Redis C++ 客户端:连接、安装与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Redis C++ 客户端:hiredis 完整使用指南



Redis 是一种流行的内存数据库,常用于缓存、会话管理、消息队列等场景。要从 C++ 应用程序与 Redis 交互,有多种库可供选择,其中最常见且可靠的是 hiredis。这个轻量、快速且稳定的库提供了纯净的 C API,可轻松集成到 C++ 项目中。本文将详细介绍如何安装 hiredis、将其接入项目、执行基本的 Redis 操作以及处理可能的错误。



什么是 hiredis?



hiredis 是 Redis 官方推出的 C 语言客户端,由 Redis 开发团队维护。它支持:

  • 同步与异步连接
  • 断线自动重连
  • 命令流水线(pipelining)
  • 二进制数据处理
  • 完整支持 Redis 协议(RESP2 和 RESP3)


尽管 hiredis 是用 C 编写的,但它非常适合 C++ 项目:可以将其封装到 RAII 类中,结合现代 C++11/17 惯用法使用,并轻松与其他库配合。



安装 hiredis



最简单的安装方式是通过系统包管理器。不同操作系统的示例:



Ubuntu / Debian

sudo apt updatesudo apt install libhiredis-dev


macOS(Homebrew)

brew install hiredis


Windows(vcpkg)

vcpkg install hiredis


如果您更倾向于从源码编译 hiredis(例如自定义配置):

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


连接 Redis 服务器



安装 hiredis 后,您可以将其接入 C++ 项目。请确保在编译器设置中指定头文件路径和库路径:

  • -I/usr/include(或 hiredis.h 所在路径)
  • 链接时添加 -lhiredis


连接运行在 localhost:6379 的 Redis 的最小示例代码:

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

int main() { // 连接到 Redis redisContext *c = redisConnect("127.0.0.1", 6379); if (c == nullptr || c->err) { if (c) { std::cerr << "连接错误:" << c->errstr << std::endl; redisFree(c); } else { std::cerr << "无法为上下文分配内存" << std::endl; } return 1; } std::cout << "已成功连接到 Redis!" << std::endl;

// 释放资源 redisFree(c); return 0;}


发送命令与接收响应



hiredis 提供了 redisCommand 函数用于发送命令。它返回指向 redisReply 的指针,其中包含执行结果。请始终检查响应是否为 nullptr,并在使用后释放内存。



我们来看基本操作:设置和获取字符串值。



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

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

// 设置键 "myname" 的值为 "C++ Developer" redisReply *reply = (redisReply*)redisCommand(c, "SET myname 'C++ Developer'"); if (reply == nullptr) { std::cerr << "执行 SET 命令时出错" << std::endl; redisFree(c); return

推荐