转载源地址: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;}
网友评论