- 安装redis
wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
tar -zvxf redis-2.4.17.tar.gz
cd redis-2.4.17
make
sudo make install
- 安装hiredis
wget https://github.com/antirez/hiredis/tarball/master
tar xzvf master
cd antirez-hiredis-0fff0f1
make
sudo make install
- 注意:
需要更新一下库的cache,因为程序启动时,会去/etc/ld.so.cache来查找所要用的库,不然会出现如下错误:error while loading shared libraries: libhiredis.so.0.10: cannot open shared object file: No such file or directory。
执行命令:
sudo ldconfig /usr/lib/
- 开启redis-server
redis-server
- 测试代码
- redis.h
/*
* redis.h
*
* Created on: Apr 1, 2016
* Author: liang
*/
#ifndef REDIS_H_
#define REDIS_H_
#include <iostream>
#include <string.h>
#include <string>
#include <stdio.h>
#include <hiredis/hiredis.h>
class Redis {
public:
Redis() {
}
~Redis() {
this->_connect = NULL;
this->_reply = NULL;
}
bool connect(std::string host, int port) {
this->_connect = redisConnect(host.c_str(), port);
if (this->_connect != NULL && this->_connect->err) {
printf("connect error: %s\n", this->_connect->errstr);
return 0;
}
return 1;
}
std::string get(std::string key) {
this->_reply = (redisReply*) redisCommand(this->_connect, "GET %s",
key.c_str());
std::string str = this->_reply->str;
freeReplyObject(this->_reply);
return str;
}
void set(std::string key, std::string value) {
redisCommand(this->_connect, "SET %s %s", key.c_str(), value.c_str());
}
private:
redisContext* _connect;
redisReply* _reply;
};
#endif /* REDIS_H_ */
- redis..cpp
#include "redis.h"
int main() {
Redis *r = new Redis();
if (!r->connect("localhost", 6379)) {
printf("connect error!\n");
return 0;
}
r->set("name", "Mayuyu");
printf("Get the name is %s\n", r->get("name").c_str());
delete r;
return 0;
}
- 命令行执行
g++ redis.cpp -lhiredis -o redis
./redis