上一章介绍的是如何安装Redis以及在Redis客户端上进行简单测试,但是我们一般安装完Redis之后,都是要结合编程语言对其进行应用的,hiredis是redis开源库对外发布的客户端API包,这一章将讲解如何安装hiredis以及编写简单的测试程序进行测试。
首先进入hiredis官网进行包的下载:
进入到下载页面,点击最新版本的tar.gz包进行下载,接下来的过程和安装Redis完全一样
1、解压:tar -zxvf hiredis-0.13.3.tar.gz
2、编译:make
3、安装:make install
4、新建一个文件夹RedisTest:mkdir RedisTest
5、新建一个RedisTest.c文件:vim RedisTest.c
6、在此文件中输入相关代码:
#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 ",conn->errstr); return 0; } redisReply *reply = (redisReply*)redisCommand(conn,"set foo 1234"); freeReplyObject(reply); reply = redisCommand(conn,"get foo"); printf("%s ",reply->str); freeReplyObject(reply); redisFree(conn); return 0; }
官网上面也有较为详细的教程:
执行编译命令:gcc -o RedisTest RedisTest.c -L/usr/local/lib/ -lhiredis
得到可运行文件RedisTest,输入指令:./RedisTest,运行该文件得到结果:1234
如果遇到:error while loading shared libraries: libhiredis.so.0.13: cannot open shared object file: No such file or directory这样的错误,即动态库无法加载,我们可以这样做:
1、在/etc/ld.so.conf.d/目录下添加usr-libs.conf文件:vim /etc/ld.so.conf.d/usr-libs.conf
2、在文件中添加内容:/usr/local/lib
3、退出文本编译::wq
4、更新动态库配置:/sbin/ldconfig
补:如果是在eclipse平台进行代码编译与运行,那么上述测试代码在编译阶段可能出现如下错误:
只要把代码:
reply = redisCommand(conn,"get foo");
替换成:
reply = (redisReply*)redisCommand(conn,"get foo");
就可以了
如果出现如下错误:
undefined reference to `redisConnect' undefined reference to `redisCommand' undefined reference to `freeReplyObject' undefined reference to `redisCommand' undefined reference to `freeReplyObject' undefined reference to `redisFree'
则右键项目->Properties->C/C++ Build->Settings->Tool Settings->Libraries,添加Libraries:
在弹出窗口输入hiredis并确定
操作完成之后,目录下出现hiredis库:
重新编译之后,编译成功:
运行得到结果:1234