1、下载redis
wgethttp://redis.googlecode.com/files/redis-
2
.
4
.
17
.tar.gz
tar -zvxf redis-
2
.
4
.
17
.tar.gz
cd redis-
2
.
4
.
17
make
sudo make install
2、安装hiredis
wget https://github.com/antirez/hiredis/tarball/master
tar xzvf master
cd antirez-hiredis-0fff0f1
make
sudo make install
3、测试验证
开启redis-server; redis-server
测试代码如下:
#include <stdio.h>
#include <hiredis/hiredis.h>
int main()
{
redisContext* conn = redisConnect("127.0.0.1",6379);
if(conn->err) printf("connection error:%s\n",conn->errstr);
redisReply* reply = redisCommand(conn,"set foo 1234");
freeReplyObject(reply);
reply = redisCommand(conn,"get foo");
printf("%s\n",reply->str);
freeReplyObject(reply);
redisFree(conn);
return 0;
}
makefile
LIBDIR= -L/usr/local/lib
LIBSO = -lhiredis
CFLAG = -Wall -g
all:test
test:test.o
gcc ${CFLAG} -o $@ $< ${LIBDIR} ${LIBSO}
%.o%.c:
gcc -c -o $@ $^
clear:
rm -f *.o
ok
也许你在测试的过程中会遇到以下问题
test.o: In function `main':
test.c:(.text+0x19): undefined reference to `redisConnect'
test.c:(.text+0x53): undefined reference to `redisCommand'
test.c:(.text+0x63): undefined reference to `freeReplyObject'
test.c:(.text+0x77): undefined reference to `redisCommand'
test.c:(.text+0x96): undefined reference to `freeReplyObject'
test.c:(.text+0xa2): undefined reference to `redisFree'
collect2: ld returned 1 exit status
或者是error while loading shared libraries: libhiredis.so.0.10: cannot open shared object file: No such file or directory
第一个问题是由于你没有连接动态库的原因,连接动态库即可;
第二个问题也是动态库的问题,是系统找不到这个动态库,此时记住sudo /sbin/ldconfig以下,更新一下系统动态库配置
同时你也要检查一下/etc/ld.so.conf文件中是否包含需要的动态库的目录,如果没有的话就添加进出即可,然后ldconfig