1. 安装 redis-plus-plus

C++ 操作 Redis 的库有很多,这里选择使用 redis-plus-plus,这个库的功能强大,使用简单。

Github 地址:GitHub - sewenew/redis-plus-plus: Redis client written in C++

访问不了Github 地址的可以使用Steam++来加速访问。

 redis-plus-plus 是基于 hiredis 实现的。hiredis 是一个 C 语言实现的 redis 客户端,因此需要先安装 hiredis,直接使用包管理器安装即可。

redis-plus-plus本体,只能编译安装,使用编译安装ubuntu会比centos方便很多

1.1 Ubuntu安装

apt install libhiredis-dev

Ubuntu

安装cmake

apt install cmake

具体步骤:

git clone https://github.com/sewenew/redis-plus-plus.git
cd redis-plus-plus

mkdir build

cd build

cmake .. //生成makefile,此处..指向CMakeLists.txt文件所在的目录

make

make install //把刚才的库拷贝到系统目录

2. 编写 HelloWorld

Redis 库最多可以支持到 C++17 版本。(如果是用 Centos,需要注意 gcc/g++ 的版本,看是否支持 C++17。不支持的话,选用 C++11 版本也是可以的)

编译程序时,需要引入的库文件(由于不同系统中安装好的库所在位置会存在差异,因此要注意⽂件路径是否存在。可以用 find 命令来查找库所在的目录):

  1. Redis++ 自己的静态库
  2. hiredis 静态库
  3. 线程库
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include <sw/redis++/redis++.h>
 
using std::cout;
using std::endl;
using std::vector;
using std::string;
using std::unordered_map;
 
int main()
{
    // 创建Redis对象时,需要在构造函数中指定redis服务器的地址和端口 
    sw::redis::Redis redis("tcp://127.0.0.1:6379");
    // 调用ping方法,让客户端给服务器发了一个PING,然后服务器就会返回一个PONG,就通过返回值获取到 
    string result = redis.ping(); // 测试用,可不写
    std::cout << result << std::endl;
 
    redis.set("key", "HelloWorld");
 
    // 使用 get 获取到 key 对应的 value
    auto value1 = redis.get("key");
    // optional 可以隐式转成 bool 类型, 可以直接在 if 中判定. 如果是无效元素, 就是返回 false
    if (value1)
    {
        std::cout << value1.value() << std::endl;
    }
    return 0;
}

为什么头文件要写成这样,不能直接写redis++吗?

肯定是不行的

编译器会从系统默认路径寻找头文件,而默认路径是/usr/local/include,所以我们要加上sw/redis/redis++.h

如下是我们makefile文件

mytest:mytest.cpp
	g++ -std=c++17 -o $@ $^ /usr/local/lib/libredis++.a /usr/lib/x86_64-linux-gnu/libhiredis.a -pthread
 
.PHONY:clean
clean:
	rm mytest

依赖的是redis++的静态库,hiredis静态库和线程库,我们要写makefile编译的时候要带上对应的路径。

这里要注意,不是每个人下载好的对应库跟我是一样的,大家可以通过find命令去寻找对应路径

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐