首页 / C语言 / C语言使用hiredis访问redis
C语言使用hiredis访问redis
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言使用hiredis访问redis,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2652字,纯文字阅读大概需要4分钟。
内容图文
Hiredis
是Redis数据库的简约C客户端库。它是简约的,因为它只是增加了对协议的最小支持,但是同时它使用了一个高级别的 printf-like API,所以对于习惯了 printf 风格的C编程用户来说,其非常容易使用,而且API中没有明确的绑定每个 Redis 命令。
Github: https://github.com/redis/hiredis
安装hiredis
编译安装:
$ git clone git@github.com:redis/hiredis.git
$ cd hiredis
$ make
$ make install
下面是make install
的输出:
mkdir -p /usr/local/include/hiredis /usr/local/include/hiredis/adapters /usr/local/lib
cp -pPR hiredis.h async.h read.h sds.h /usr/local/include/hiredis
cp -pPR adapters/*.h /usr/local/include/hiredis/adapters
cp -pPR libhiredis.so /usr/local/lib/libhiredis.so.0.13
cd /usr/local/lib && ln -sf libhiredis.so.0.13 libhiredis.so
cp -pPR libhiredis.a /usr/local/lib
mkdir -p /usr/local/lib/pkgconfig
cp -pPR hiredis.pc /usr/local/lib/pkgconfig
复制动态链接库到lib:
cp libhiredis.so /usr/lib64 /usr/lib
若是32系统只需要运行:
cp libhiredis.so /usr/lib
还需要更新下动态链接库缓存:
/sbin/ldconfig
ldconfig
命令的用途主要是在默认搜寻目录/lib
和/usr/lib
以及动态库配置文件/etc/ld.so.conf
内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*
),进而创建出动态装入程序(ld.so
)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache
,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig
,此执行程序存放在/sbin目录下。
ldconfig
通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
客户端代码
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);
return0;
}
然后:
$ gcc test.c -o test -lhiredis
编译是一定要使用-l
连接动态库。
-lstack
告诉编译器要链接lhiredis
库。
运行:
$ ./test
1234
函数原型
redisConnect
redisContext *redisConnect(constchar *ip, int port)
说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379。
该函数返回一个结构体redisContext
。
redisCommand
void *redisCommand(redisContext *c, constchar *format, ...);
说明:该函数执行命令,就如sql数据库中的SQL语句一样,只是执行的是redis
数据库中的操作命令,第一个参数为连接数据库时返回的redisContext
,剩下的参数为变参,就如C标准函数printf
函数一样的变参。
返回值为void*
,一般强制转换成为redisReply
类型的进行进一步的处理。
freeReplyObject
void freeReplyObject(void *reply);
说明:释放 redisCommand
执行后返回的 redisReply
所占用的内存。
redisFree
void redisFree(redisContext *c);
说明:释放 redisConnect()
所产生的连接。
参考
1、Redis:安装、配置、操作和简单代码实例(C语言Client端) - CSDN博客
https://blog.csdn.net/hj19870806/article/details/8724907
2、C语言访问redis(hiredis) - CSDN博客
https://blog.csdn.net/sole_cc/article/details/38015765
3、error while loading shared libraries问题解决 - CSDN博客
https://blog.csdn.net/qgd19931120/article/details/50971142
4、ldconfig命令_Linux ldconfig 命令用法详解:动态链接库管理命令
http://man.linuxde.net/ldconfig?mstqrk=qdwrv1
原文:https://www.cnblogs.com/52fhy/p/9196527.html
内容总结
以上是互联网集市为您收集整理的C语言使用hiredis访问redis全部内容,希望文章能够帮你解决C语言使用hiredis访问redis所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。