bool xRedisClient::mget(const DBIArray &vdbi, const KEYS & keys, ReplyData& vDdata) { bool bRet = false; size_t n = vdbi.size(); if (n!=keys.size()) { return bRet; } DataItem item; DBIArray::const_iterator iter_dbi = vdbi.begin(); KEYS::const_iterator iter_key = keys.begin(); for (;iter_key!=keys.end();++iter_key, ++iter_dbi) { const RedisDBIdx& dbi = *iter_dbi; SETDEFAULTIOTYPE(SLAVE); const string &key = *iter_key; if (key.length()>0) { bool ret = command_string(*iter_dbi, item.str, "GET %s", key.c_str()); if (!ret) { item.type = REDIS_REPLY_NIL; item.str = ""; } else { item.type = REDIS_REPLY_STRING; bRet = true; } vDdata.push_back(item); } } return bRet; }
int32_t xRedisClient::GetReply(xRedisContext* ctx, ReplyData& vData) { //vData.clear(); //ReplyData(vData).swap(vData); redisReply *reply; RedisConn *pRedisConn = static_cast<RedisConn *>(ctx->conn); int32_t ret = redisGetReply(pRedisConn->getCtx(), (void**)&reply); if (0==ret) { for (size_t i = 0; i < reply->elements; i++) { DataItem item; item.type = reply->element[i]->type; item.str.assign(reply->element[i]->str, reply->element[i]->len); vData.push_back(item); } } RedisPool::FreeReply(reply); return ret; }