linux下C++连接redis

Posted luffy5459

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下C++连接redis相关的知识,希望对你有一定的参考价值。

linux下c++连接redis,需要安装redis,同时还需要安装hiredis,hiredis是c++操作redis的api库。redis的安装这里不介绍了,很多教程。这里直接从hiredis安装说起。

1、下载hiredis,并解压。https://github.com/redis/hiredis

[root@server software]# wget https://github.com/redis/hiredis/archive/v0.14.0.tar.gz

[root@server software]# tar -xzf v0.14.0.tar.gz 
[root@server software]# ls
hiredis-0.14.0  maven  v0.14.0.tar.gz
[root@server software]# rm -f v0.14.0.tar.gz 
[root@server software]# ls
hiredis-0.14.0  maven
[root@server software]# cd hiredis-0.14.0/
[root@server hiredis-0.14.0]# ls
adapters      async.c  CHANGELOG.md  dict.c  examples   hiredis.c  Makefile  net.h   read.h     sdsalloc.h  sds.h   win32.h
appveyor.yml  async.h  COPYING       dict.h  fmacros.h  hiredis.h  net.c     read.c  README.md  sds.c       test.c

2、编译和安装hiredis,在hiredis解压目录下运行命令make,make install

3、编写简单的代码:

main.cpp

#include <iostream>
#include <hiredis/hiredis.h>
using namespace std;
int main()
    redisContext *c = redisConnect("127.0.0.1",6379);
    if(c->err)
       redisFree(c);
       cout<<"connect to redis fail"<<endl;
       return 1;
    
    cout<<"connect to redis success"<<endl;
    redisReply *r = (redisReply*)redisCommand(c,"get name");
    cout<<r->str<<endl;
    return 0;
 

4、编译运行,在编译运行之前,我们需要启动redis,命令行连接redis,并设置键值name=hiredis

[root@server cppredis]# redis-cli
127.0.0.1:6379> set name hiredis
OK
127.0.0.1:6379> get name
"hiredis"
127.0.0.1:6379> exit
[root@server cppredis]# cat main.cpp 
#include <iostream>
#include <hiredis/hiredis.h>
using namespace std;
int main()
    redisContext *c = redisConnect("127.0.0.1",6379);
    if(c->err)
       redisFree(c);
       cout<<"connect to redis fail"<<endl;
       return 1;
   
    cout<<"connect to redis success"<<endl;
    redisReply *r = (redisReply*)redisCommand(c,"get name");
    cout<<r->str<<endl;
    return 0;

[root@server cppredis]# ls
main.cpp
[root@server cppredis]# g++ -lhiredis -o main main.cpp 
[root@server cppredis]# ls
main  main.cpp
[root@server cppredis]# ./main
connect to redis success
hiredis
[root@server cppredis]# 

这里唯一需要注意的,就是编译main.cpp时,需要加入-lhiredis参数,指定hiredis的库。

贴上编译运行结果截图:

以上是关于linux下C++连接redis的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac 中使用 SWIG for Python 的 C++ 最小示例

mac系统下如何学习c++

如何在 Mac OS 上为 Python 包“从源代码”安装 C++ 依赖项?

Mac 下 TensorFlow C++ API 的编译与测试

在mac console下 执行c++文件

百战c++(网络)