C++ 操作Redis HSCAN命令的处理

当redis HMAP数据量比较大的时候(上百万条记录),你一定会想有没有办法一部分一部分的取,这时候HSCAN就派上用场了。

1 命令使用:HSCAN KEY nCursor COUNT nCount

解释:KEY是HASHMAP的键名 nCursor是游标(初始值一般为0,后续的都使用上一次HSCAN命令返回的游标值) nCount 是本次查询的总数(实际结果是nCount相近的一个值,并不是确定的,具体原因请参考:https://www.dazhuanlan.com/2020/02/18/5e4b60d653b35/)

2 网络上很多关于redis array类型的操作都只包含一级array,对于多级array没有处理,所以在调用HSCAN的时候是取不出来的,直接上代码:

QString ExecuteHGetMap(QString& sError, QString& sCursor,std::map<QString, QString>& mapRedisHashMap, redisReply *reply)
{
   
    QString out;
    switch(reply->type)
    {
   /// 为了适配多种类型的数据,这里不直接取element的str,改为递归取对应类型的值,如果key或value的类型是int,element->str是无法取出来的
    case REDIS_REPLY_ERROR:
        sError += QString("(error) %1\n").arg(reply->str);
        break;
    case REDIS_REPLY_STATUS:
        out = reply
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值