本文整理汇总了C++中acl::redis_zset::get_result方法的典型用法代码示例。如果您正苦于以下问题:C++ redis_zset::get_result方法的具体用法?C++ redis_zset::get_result怎么用?C++ redis_zset::get_result使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类acl::redis_zset
的用法示例。
在下文中一共展示了redis_zset::get_result方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_zrange
static bool test_zrange(acl::redis_zset& redis, int i, const char* key,
const char* hmac)
{
int start = 0, end = -1;
// 请求的数据量比较小,所以在组装请求协议时不必采用分片方式
redis.get_client()->set_slice_request(false);
// 对服务器返回的数据也不分片
redis.get_client()->set_slice_respond(false);
int ret = redis.zrange(key, start, end, NULL);
if (ret <= 0)
{
printf("zrange return: %d\r\n", ret);
return false;
}
// 获得数组元素结果集
const acl::redis_result* result = redis.get_result();
if (result == NULL)
{
printf("result null\r\n");
return false;
}
size_t size;
// 直接获得数组集合
const acl::redis_result** children = result->get_children(&size);
if (children == NULL || size == 0)
{
printf("no children: %s, size: %d\r\n",
children ? "no" : "yes", (int) size);
return false;
}
// 校验获得的所有数据片的 MD5 值,与传入的进行比较
acl::md5* md5;
if (hmac != NULL)
md5 = new acl::md5;
else
md5 = NULL;
const acl::redis_result* child;
size_t len, argc, n;
// 先遍历所有数组元素对象
for (size_t j = 0; j < size; j++)
{
child = children[j];
if (child == NULL)
continue;
// 因为前面设置了禁止对响应数据进行分片,所以只需取第一个元素
argc = child->get_size();
assert(argc == 1);
const char* ptr = child->get(0, &len);
if (ptr == NULL)
{
printf("first is null\r\n");
continue;
}
const char* dat = strchr(ptr, ':');
if (dat == NULL)
{
printf("invalid data, j: %d\n", (int) j);
continue;
}
dat++;
n = dat - ptr;
if (len < n)
{
printf("invalid data, j: %d\n", (int) j);
continue;
}
len -= n;
// 取出数据计算 md5 值
if (md5 != NULL)
md5->update(dat, len);
}
if (md5 != NULL)
md5->finish();
// 获得字符串方式的 MD5 值
if (md5 != NULL)
{
const char* ptr = md5->get_string();
if (strcmp(ptr, hmac) != 0)
{
printf("md5 error, hmac: %s, %s, key: %s\r\n",
hmac, ptr, key);
return false;
}
else if (i < 10)
printf("md5 ok, hmac: %s, %s, key: %s\r\n",
//.........这里部分代码省略.........