CentOS 6上使用C++调用Redis

参考博客: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.8
rpm install tcl
make
make test(这一步会出现一个warning,可忽略)

3 下面安装hiredis库,

git clone https://github.com/redis/hiredis
cd hiredis
make
make install
ldconfig /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服务器的相关信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值