CentOS 6上使用C++调用Redis

来源:互联网 发布:无锡网络开发有限公司 编辑:程序博客网 时间:2024/06/06 12:33

参考博客:http://hahaya.github.io/operator-redis-under-linux/

1 系统:
Windows 64位系统,vmware, CentOS 6

2 安装Redis
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar –gxvf redis-3.2.8.tar.gz

遇到的问题:vmware无法联网
原因:误把IP改为手动设置,需要修改回自动获取。
修改:右键点击桌面下方网络图标,进入设置页,修改IP设置为自动获取。

cd redis-3.2.8rpm install tclmakemake test(这一步会出现一个warning,可忽略)

3 下面安装hiredis库,

git clone https://github.com/redis/hirediscd hiredismakemake installldconfig /usr/local/lib

4 使用C++调用Redis:

#include <hiredis/hiredis.h>#include <iostream>#include <string>int main(int argc, char **argv){    struct timeval timeout = {2, 0};    //2s的超时时间    //redisContext是Redis操作对象    redisContext *pRedisContext = (redisContext*)redisConnectWithTimeout("127.0.0.1", 6379, timeout);    if ( (NULL == pRedisContext) || (pRedisContext->err) )    {        if (pRedisContext)        {            std::cout << "connect error:" << pRedisContext->errstr << std::endl;        }        else        {            std::cout << "connect error: can't allocate redis context." << std::endl;        }        return -1;    }    //redisReply是Redis命令回复对象 redis返回的信息保存在redisReply对象中    redisReply *pRedisReply = (redisReply*)redisCommand(pRedisContext, "INFO");  //执行INFO命令    std::cout << pRedisReply->str << std::endl;    //当多条Redis命令使用同一个redisReply对象时     //每一次执行完Redis命令后需要清空redisReply 以免对下一次的Redis操作造成影响    freeReplyObject(pRedisReply);       return 0;}

保存退出

5 执行

g++ OperatorRedis.cpp –o OperatorRedis –lhiredis

启动Redis服务器:

redis-server

运行程序:

./OperatorRedis

可以输出redis服务器的相关信息

0 0