Redis C 语言客户端 hiredis 的使用

最近需要使用C++来访问 Redis,查找了一些开源C/C++ 的 Redis 客户端,发现 hiredis 目前的社区活跃度较高,且比较轻量级,就决定选用这款客户端了。

安装

以 Mac OS 为例,说明如何安装 hiredis。

  1. 下载 hiredis 的代码
1
git clone https://github.com/redis/hiredis.git
  1. 编译安装
1
2
make
make install

第一个例子

下面的例子中,首先创建了一个连接 Redis 的实例,然后通过这个连接向 Redis 发送命令。取得 Redis 的返回后,需要记住将相关的返回对象和连接对象释放,避免资源的泄漏。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <hiredis/hiredis.h>

int main()
{
redisContext *conn = redisConnect("127.0.0.1", 6379);
if (conn != NULL && conn->err) {
printf("connection error: %s\n", conn->errstr);
return 0;
}

redisReply *reply;
reply = redisCommand(conn, "SET %s %s", "foo", "bar");
freeReplyObject(reply);

reply = redisCommand(conn, "GET %s", "foo");
printf("%s\n", reply->str);
freeReplyObject(reply);

redisFree(conn);

return 0;
}

写好代码后,我们对上面的代码进行编译。

1
gcc -o testhiredis testhiredis.c -L/usr/local/lib -lhiredis

其中的-L参数指定 gcc 的库文件的搜索路径,在这里为/usr/local/lib/usr/local/lib包含了 hiredis 的库文件。-l参数则指明使用的库文件,-lhiredis的意思即是搜索libhiredis.a的库文件。libhiredis.a实际上已安装在/usr/local/lib目录下了,有兴趣的可以查证一下。

上面的程序执行结果为:

bar