redis 安装和配置
准备条件:
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 0; } printf("connect successful"); return 1; } 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",6379)){ printf(connect failed\n); return 0; } obj.set("name","semon"); printf("get name `s value =%s",obj.get("name").c_str()); return 0; }
makefile如下: redis:myredis.h myredis.cpp g++ -g myredis.cpp -o redis -L/etc/redis-4.0.9/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); }
作者:first_semon
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流