本文主要介绍hiredis的相关知识,以及使用hiredis接口(Synchronous API)编写redis客户端的方法。
源自github上的描述:
Hiredis is a minimalistic C client library for the Redis database.
使用hiredis的Synchronous API接口编写redis的客户端,通常需要调用以下几个函数:
redisContext *redisConnect(const char *ip, int port); // 建立redis连接 void *redisCommand(redisContext *c, const char *format, ...); // 执行redis命令 void freeReplyObject(void *reply); // 释放redis命令的返回内容一个完整的示例代码(hiredis_syncAPI.cpp)如下:
#include <iostream> #include "hiredis/hiredis.h" using namespace std; int main() { // 建立redis连接 redisContext *c = redisConnect("192.168.213.133", 6379); if ((c == NULL) || (c->err)) { if (c) { cout << "Error: " << c->errstr << endl; // 释放redis连接 redisFree(c); return -1; } else { cout << "Can't allocate redis context." << endl; return -1; } } else { cout << "Connected to Redis." << endl; } redisReply *reply; // 添加数据 reply = (redisReply *)redisCommand(c, "SET zs zhanshi"); cout << "SET reply is: " << reply->str << endl; freeReplyObject(reply); // 查询数据 reply = (redisReply *)redisCommand(c, "GET zs"); cout << "GET reply is: " << reply->str << endl; freeReplyObject(reply); // 释放redis连接 redisFree(c); return 0; }执行下面的命令编译上述代码,生成redis客户端:
g++ -o hiredis_syncAPI hiredis_syncAPI.cpp -lhiredis我们在主机(IP地址为192.168.213.133)上打开redis服务器,该redis服务器监听对于192.168.213.133的连接,如下:
[root@node1 /opt/liitdar/hiredis]# redis-server /etc/redis.conf在另外一台主机(IP地址为192.168.213.131)上运行前面编译生成的redis客户端“hiredis_syncAPI”,如下:
./hiredis_syncAPI正常情况下,我们编写的客户端能够连接到redis服务器,并执行指定的redis命令,如下:
如果运行redis客户端的终端中出现上述信息,说明我们的编写的redis客户端运行成功了。