C语言通过Hiredis访问redis数据库

C语言访问redis数据库

  1. 准备Hiredis库
    Centos7或8
    hiredis-0.11.0.tar.gz
    yum install redis
  2. 安装Hiredis库
    解压Hiredis压缩包
    tar -zcvf hiredis-0.11.0.tar.gz ./
    在Hiredis根目录执行
    make && make install
  3. 编辑动态库连接
    创建目录,并拷贝文件到目录
    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以下,更新一下系统动态库配置
  4. 编写测试源码
    test.c和makefile放在相同目录下,执行make,目录下会生成test可执行文件
  5. 运行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;  
  
}

注:动态库引用是关键,详细源码可以联系博主索取

猜你喜欢

转载自blog.csdn.net/weloveut/article/details/108887535