QT 使用hiRedis获取指定库第一层以:分隔符所有key,并返回key名称
时间: 2024-03-19 16:42:10 浏览: 123
可以使用以下代码片段来实现:
```c++
#include <iostream>
#include <hiredis/hiredis.h>
int main() {
// 连接 Redis 服务器
redisContext* context = redisConnect("localhost", 6379);
if (context == nullptr || context->err) {
std::cout << "Error: " << context->errstr << std::endl;
return 1;
}
// 选择 Redis 数据库
redisCommand(context, "SELECT 0");
// 获取第一层以 : 分隔符所有 key
redisReply* reply = (redisReply*)redisCommand(context, "KEYS *:*");
if (reply == nullptr || reply->type != REDIS_REPLY_ARRAY) {
std::cout << "Error: " << context->errstr << std::endl;
return 1;
}
// 输出 key 名称
for (int i = 0; i < reply->elements; i++) {
std::cout << reply->element[i]->str << std::endl;
}
// 释放资源
freeReplyObject(reply);
redisFree(context);
return 0;
}
```
其中,`redisConnect` 函数用于连接 Redis 服务器,`redisCommand` 函数用于向 Redis 发送命令,`redisReply` 结构体用于接收 Redis 的回复。在本代码中,我们首先连接 Redis 服务器,然后选择指定的数据库(此处为第0个数据库),接着使用 `KEYS *:*` 命令获取第一层以 : 分隔符所有 key,最后输出 key 名称。
阅读全文