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);
}

 

posted @ 2018-05-24 17:09  first_semon  阅读(145)  评论(0编辑  收藏  举报