准备条件:
1>确保所安装的环境能够访问网络,
2>环境中拥有gcc\g++、make、tar等工具
3>以root身份登录
安装过程:
1>输入命令:wget http://download.redis.io/releases/redis-4.0.9.tar.gz
2>解压下载的压缩包到当前目录下:tar zxf redis-4.0.9.tar.gz ./
3>进入解压文件夹下执行make
4>然后cd ./src目录下,执行make install 或者 在上一步骤总执行 cd ./src && make install 安装到当前系统中。
注意:redis默认是在前台运行的,要想在后台运行,需要对配置进行修改。另外redis默认只能本地连接,所以要想跨平台使用管理工具连接,还需要设置防火墙
对配置进行修改如下:
1>将127.0.0.1注释掉
2>将protected-mode yes 改成 no
3>daemonize no 改成 yes
注意:本人看了一下防火墙配置,debian默认是接受所有连接的,就是说,防火墙开了,但是和没开一样。
以上所有工作做完了以后,关闭redis:redis-cli shutdown
重启:redis-server path/redis.conf
截止成功连接
#include<string.h>
#include<iostream>
#include<stdio.h>
//根据自己安装的redis路径去查找对应的文件,可以使用wheris \locate \find其实就是在下载的安装包解压后的文件夹里面
#incldue "/etc/redis-4.0.9/deps/hiredis/hiredis.h" class MyRedis{
public:
MyRedis(){}
~MyRedis(){
p_connect = NULL;
p_reply = NULL;
}
bool connect(std::string host,int port){
p_connect = redisConnect(host.c_str(),port);
if(p_connect != NULL && p_connect.err){
printf("connect failed\n");
return ;
}
printf("connect successful");
return ;
}
std::string get(std::string key){
p_reply = (redisReply*)redisCommand(p_connect,"get %s",key.c_str());
std::string str = p_reply.str;
freeReplyObject(p_reply);
return str;
}
void set(str::string key,std::string value){
redisCommand(p_connect,"set %s,%s",key.c_str(),value.c_str());
}
}; #include "myredis.h"
int main(){
MyRedis obj;
if(!obj.connect("127.30.0.1",)){
printf(connect failed\n);
return ;
}
obj.set("name","semon");
printf("get name `s value =%s",obj.get("name").c_str());
return ;
}
makefile如下:
redis:myredis.h myredis.cpp
g++ -g myredis.cpp -o redis -L/etc/redis-4.0./deps/hiredis/ -lhiredis
clean:
rm redis.o redis
注意哦:如果照搬代码会出错的哦
出错的原因是你给了std::string 对象服了NULL值。
你把set命令中的红色小逗号去掉就OK了。
//设置过期时间
void expire(std::string key,unsigned int sec){
redisCommand(p_connect,"expire %s %d",key.c_str(),sec);
}