美文网首页
C++Redis封装库 RedisConnect介绍

C++Redis封装库 RedisConnect介绍

作者: Aska偶阵雨 | 来源:发表于2020-02-22 16:02 被阅读0次

    转载源地址:https://www.winfengtech.com/redisconnect

    RedisConnect介绍

    1、RedisConnect是基于C++11实现的简单易用的Redis客户端。

    2、源码只包含一个头文件与一个命令行工具源文件,无需编译安装,真正做到零依赖。

    3、自带连接池功能,调用Setup方法初始化连接池,然后执行Instance方法就可以获取一个连接。

    4、RedisConnect包装了常用的redis命令,对于未包装的命令你可以使用可变参模板方法(execute)进行调用。

    安装方法

    1、下载源码

    git clonehttps://gitee.com/xungen/redisconnect.git

    2、直接在工程中包含RedisConnect(示例代码如下)

    #include"RedisConnect.h"intmain(intargc,char** argv){stringval;//初始化连接池RedisConnect::Setup("127.0.0.1",6379,"password");//从连接池中获取一个连接shared_ptr redis = RedisConnect::Instance();//设置一个键值redis->set("key","val");//获取键值内容redis->get("key", val);//执行expire命令设置有效时间redis->execute("expire","key",60);//获取有效时间(与ttl(key)方法等价)redis->execute("ttl","key");//调用getStatus方法获取ttl命令执行结果printf("超时时间:%d\n", redis->getStatus());//执行del命令删除键值redis->execute("del","key");return0;}

    3、RedisConnect自带一个命令行客户端工具

    直接在源码目录执行make命令就可完成客户端工具的编译,工具名称为redis,使用工具前你需要设置以下环境变量,然后将redis程序复制到系统/usr/bin目录下

    # redis服务地址与端口exportREDIS_HOST=127.0.0.1:6379# redis连接的认证密码(为空说明无需认证)exportREDIS_PASSWORD=password

    设置好上面的环境变量你可以使用redis客户端,使用方法如下

    # 设置一个键值redissetkeyval# 获取指定键值redisgetkey# 设置有效时间redisexpirekey60# 获取有效时间redis ttlkey

    4、万能的可变参模板方法(execute)

    RedisConnect包装了常用的redis命令,对于未包装的命令你可以使用可变参模板方法(execute)进行调用。可变参模板方法源码如下

    //调用成功返回值不小于零(你可以马上调用getStatus方法获取redis返回结果)templateintexecute(DATA_TYPEval,ARGS...args){Command cmd;    cmd.add(val, args...);returncmd.getResult(this, timeout);}//调用成功返回值不小于零(redis返回内容保存在vec数组中)templateintexecute(vector&vec,DATA_TYPEval,ARGS...args){Command cmd;    cmd.add(val, args...);    cmd.getResult(this, timeout);if(code >0)std::swap(vec, cmd.res);returncode;}

    下面两个方法都可以获取键值的有效时间

    //调用包装方法获取有效时间timeout = redis->ttl("key");//直接调用可变参模板方法if(redis->execute("ttl","key") >0){//获取ttl命令返回结果(有效时间)timeout = redis->getStatus();}

    查看源码你会发现del、ttl、hlen等方法都是间接调用可变参模板方法(execute)实现的

    intdel(conststring& key){returnexecute("del", key);}intttl(conststring& key){returnexecute("ttl", key) == OK ? status : code;}inthlen(conststring& key){returnexecute("hlen", key) == OK ? status : code;}

    REDIS官网

    REDIS命令速查

    相关文章

      网友评论

          本文标题:C++Redis封装库 RedisConnect介绍

          本文链接:https://www.haomeiwen.com/subject/ioblqhtx.html