C语言访问redis数据库
- 准备Hiredis库
Centos7或8
hiredis-0.11.0.tar.gz
yum install redis - 安装Hiredis库
解压Hiredis压缩包
tar -zcvf hiredis-0.11.0.tar.gz ./
在Hiredis根目录执行
make && make install - 编辑动态库连接
创建目录,并拷贝文件到目录
mkdir /usr/lib/hiredis
cp libhiredis.so /usr/lib/hiredis #将动态连接库libhiredis.so至/usr/lib/hiredis
mkdir /usr/include/hiredis
cp hiredis.h /usr/include/hiredis
方法1:
直接将路径/usr/local/lib路径加入到文件/etc/ld.so.conf文件的中。在文件/etc/ld.so.conf中末尾直接添加:/usr/local/lib
方法2:
echo ‘/usr/local/lib’ >>/etc/ld.so.conf
ldconfig
执行sudo /sbin/ldconfig以下,更新一下系统动态库配置 - 编写测试源码
test.c和makefile放在相同目录下,执行make,目录下会生成test可执行文件 - 运行test
./test
控制台打印1234
Redis-cli可以查看有foo键值
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
test.c文件源码
#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;
}
注:动态库引用是关键,详细源码可以联系博主索取