zoukankan      html  css  js  c++  java
  • redis 安装和配置

    准备条件:
    1>确保所安装的环境能够访问网络,
    2>环境中拥有gccg++、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
    ");
                    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
    );
            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
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    第四周编程总结
    第三周作业编程总结
    第二周基础作业
    【C++学习教程03】面向对象编程的基本知识&内联函数
    【C++学习教程02】运算符
    【C++学习教程01】C++命名空间重名&函数原型&字符类型&数据类型
    为什么匿名内部类只能访问其所在方法中的final变量
    android通过socket上传文件
    android socket编程
    test markdown-here chrome 插件
  • 原文地址:https://www.cnblogs.com/first-semon/p/9083868.html
Copyright © 2011-2022 走看看