参考博客: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服务器的相关信息