首页 > 编程知识 正文

Linux下C 访问Redis,linux共享访问

时间:2023-05-03 11:22:06 阅读:189438 作者:759

Linux上的c访问Redis编译Redis实例gcc编译

编译redis

开发包的下载和编译在其他文章中有介绍,不熟悉的人请通过[在[Linux上构建redis环境]进行学习。 (https://blog.csdn.net/bajianxiaofendui/article/details/87642244 )

编译完成后,转到redis-2.8.3/deps/hiredis目录。 您可以看到libhiredis.a静态库已编译。

作为例子访问redis,进行简单的string读写操作

# include stdio.h # include stdlib.h # include stdef.h # include stdarg.h # inclu deasert.h # inclu ddef 连接显示服务器文件(n ); 返回; }打印(connecttoredisserversuccess (n ) ); redisreply*reply=(redisreply* ) rediscommand(c,' AUTH %s ',' password ' ); //password为redis服务的密码reply-type==redis _ reply _ error ) redis验证失败! n '; }else{printf(redis认证成功! n '; }freereplyobject(reply; const char * command1=' sets test1 value1'; redisreply*r=(redisreply* ) rediscommand(c,command1); if(null==r )执行命令1失败(n ); redisfree(c ); 返回; (if (! (r-type==redis _ reply _ status strcasecmp (r-str,' OK ' )==0) ) (printf ) failedtoexecutecommand(%s ) ) freereplyobject(r; redisfree(c ); 返回; }freereplyobject(r; printf (succeedtoexecutecommand [ % s ]n ',command1); const char * command2=' strlen stest1'; r=(redisreply* ) rediscommand(c,command2); if(r-type )!=redis_reply_integer(printf ) ' failedtoexecutecommand[%s]n ',command2); freereplyobject(r; redisfree(c ); 返回; (} int length=r-integer; freereplyobject(r; printf (the length of ' s test1 ' is % d. n ',length ); printf (succeedtoexecutecommand [ % s ]n ',command2); const char* command3='get stest1 '; r=(redisreply* ) rediscommand(c,command3); if(r-type )!=redis _ reply _ string (printf (failedtoexecutecommand [ % s ]n ',command3); freereplyobject(r; redisfree(c ); 返回; }printf(thevalueof ) stest1 ) is%sn ),r-str ); freereplyobject(r; printf (succeedtoexecutecommand [ % s ]n ',command3); const char* command4='get stest2'; r=(redisreply* ) rediscommand(c,command4); if(r-type )!=redis _ reply _ nil (printf (failedtoexecutecommand [ % s ]n ),command4); freereplyobject(r; redisfree(c ); 返回; }freereplyobject(r; printf (succeedtoexecutecommand [ % s ]n ',command4); redisfree(c ); 返回0; 在redis-2.8.3对等目录中创建新的src目录:

将RedisTest.cpp放入src目录的方法有以下两种。

1、通过xftp传输

2、输入命令vim RedisTest.cpp,复制代码,然后输入:wq! 保存并退出。

gcc编译输入命令开始编译RedisTest.cpp。

gredistest.CPP-oredi stest-I ./redis-2.8.3/deps-2.8.3/deps/hired is-lhiredisg :编译

RedisTest.cpp :源文件

RedisTest :输出文件

- I…/redis-2.8.3/deps :包含目录是当前目录的上级目录下的redis-2.8.3/deps

-L…/redis-2.8.3/deps/hiredis :表示链接库目录是位于当前目录的上级目录下的redis-2.8.3/deps/hiredis

-lhiredis :表示静态库为libhiredis。 (分别看,-l是链接,后面跟有库名称。 两者被连接在libhiredis.o上) ) ) )。

运行上面的编译命令,在对等目录下生成RedisTest,然后输入运行命令。

./RedisTest的执行结果如下。

上面的gcc命令可以用makefile代替。 具体请参考其他博客makefile通用模板

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。