C++Redis封装库 RedisConnect介绍

2020-02-22  本文已影响0人  Aska偶阵雨

转载源地址: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命令速查

上一篇下一篇

猜你喜欢

热点阅读