当前位置:首页 > C++ > 正文

C++操作Redis完全指南(从零开始使用C++ Redis库连接与操作Redis数据库)

在现代高性能应用开发中,Redis 作为一款内存型键值数据库,被广泛用于缓存、消息队列、会话存储等场景。而 C++ 作为一种高效、底层的编程语言,在需要极致性能的系统中仍占据重要地位。本文将手把手教你如何在 C++ 项目中使用 C++ Redis库 连接并操作 Redis 数据库,即使你是编程小白也能轻松上手!

C++操作Redis完全指南(从零开始使用C++ Redis库连接与操作Redis数据库) C++ Redis库  C++连接Redis Redis客户端C++ C++操作Redis 第1张

为什么选择 C++ 操作 Redis?

虽然 Python、Node.js 等语言有更丰富的 Redis 客户端,但在对性能、内存控制要求极高的场景(如高频交易系统、游戏服务器、嵌入式设备),C++ 依然是首选。通过使用成熟的 Redis客户端C++ 库,我们可以兼顾开发效率与运行性能。

推荐的 C++ Redis 库:hiredis + redis-plus-plus

目前最主流的组合是:

  • hiredis:由 Redis 官方维护的 C 语言客户端,轻量高效。
  • redis-plus-plus:基于 hiredis 封装的现代 C++17 客户端,提供更友好的接口和异常处理。

我们将以 redis-plus-plus 为主进行教学,因为它支持 C++ 风格的语法,更适合新手。

第一步:安装依赖

确保你的系统已安装以下工具:

  • g++(支持 C++17)
  • CMake(≥ 3.13)
  • git

然后依次安装 hiredis 和 redis-plus-plus:

# 克隆并编译 hiredisgit clone https://github.com/redis/hiredis.gitcd hiredismakesudo make install# 克隆并编译 redis-plus-plusgit clone https://github.com/sewenew/redis-plus-plus.gitcd redis-plus-plusmkdir buildcd buildcmake .. -DCMAKE_BUILD_TYPE=Releasemakesudo make install

第二步:编写第一个 C++ Redis 程序

创建一个名为 main.cpp 的文件,输入以下代码:

#include <iostream>#include <sw/redis++/redis++.h>using namespace sw::redis;int main() {    try {        // 创建 Redis 连接(默认本地 6379 端口)        Redis redis("tcp://127.0.0.1:6379");        // 设置键值对        redis.set("hello", "world");        // 获取值        auto val = redis.get("hello");        if (val) {            std::cout << "获取到的值: " << *val << std::endl;        } else {            std::cout << "键不存在" << std::endl;        }        // 删除键        redis.del("hello");    } catch (const Error &e) {        std::cerr << "Redis 错误: " << e.what() << std::endl;        return -1;    }    return 0;}

第三步:编译并运行

使用以下命令编译程序(注意链接 hiredis 和 redis++ 库):

g++ -std=c++17 main.cpp -lhiredis -lredis++ -o redis_demo

运行前,请确保 Redis 服务已在本地启动:

redis-server

然后执行程序:

./redis_demo

如果一切正常,你将看到输出:

获取到的值: world

常见操作示例

除了基本的 set/get,C++操作Redis 还支持哈希、列表、集合等数据结构:

// 哈希操作redis.hset("user:1001", "name", "Alice");redis.hset("user:1001", "age", "30");auto name = redis.hget("user:1001", "name");// 列表操作redis.lpush("tasks", "task1");redis.lpush("tasks", "task2");auto task = redis.lpop("tasks");// 发布/订阅(需异步处理)auto sub = redis.subscriber();sub.on_message([](std::string channel, std::string msg) {    std::cout << "收到消息: " << msg << " from " << channel << std::endl;});sub.subscribe("news");

总结

通过本教程,你已经掌握了如何在 C++ 中使用 C++ Redis库 连接 Redis 并执行基本操作。无论是缓存加速还是构建实时系统,Redis客户端C++ 都能为你提供强大支持。记住,熟练掌握 C++操作Redis 是迈向高性能后端开发的重要一步!

提示:生产环境中建议使用连接池(Connection Pool)来管理 Redis 连接,以提升并发性能。