redis的库简单安装使用参考:

以上为使用前了解信息,下面为正题内容;

在hash表中通过hgetall方法获取全部的key和value害怕之后影响效率!

想要通过hscan来通过游标分页获取,恭喜你,想的是对的,但是通过实测每次hscan给的数量和游标都没有效果,返回全部的数据!

这里通过查询得知,当hash表的数据小于一定量的时候(1023条,不一定正确),hscan模式返回的是全部数据的,返回的游标也是0;

想要预留的的话,可通过判断返回值的游标、返回type、返回数量来做自己的定制处理;

当返回游标为0时候,表示已经返回完数据了,type表REDIS_REPLY_ARRAY,表示返回的可以通过list获取数据,然后通过返回数据来控制下标获取数据即可!

c++示例:代码仅为参考,可能有误

if(REDIS_REPLY_ARRAY !=  this->_reply->type &&
       2 == this->_reply->elements &&
       this->_reply->element[1]->elements > 1) {
        str_rt = this->_reply->element[1]->element[1]->str;
}

返回游标位置:this->_reply->element[0-->str

返回数据长度:this->_reply->element[1]->elements

获取key的字符串:this->_reply->element[1]-->str
获取value的字符串:this->_reply->element[1]->element[1]->str

如果对你有用,点赞 收藏 再走呗!