KV().GetWithParam#
-
static inline std::vector<std::shared_ptr<YR::Buffer>> YR::KVManager::GetWithParam(const std::vector<std::string> &keys, const YR::GetParams ¶ms, int timeout = DEFAULT_GET_TIMEOUT_SEC)#
检索与指定键关联的多个值,并支持基于偏移量的额外参数进行读取。
此函数获取存储在指定键下的值,允许根据指定的偏移量和大小进行部分数据检索。如果任何键不存在或操作超时,除非将 allowPartial 设置为 true,否则将抛出异常。
int main() { YR::Config conf; conf.mode = Config::Mode::CLUSTER_MODE; YR::Init(conf); std::string key = "kv-id-888"; YR::KV().Del(key); std::string value = "kv-id-888wqdq"; YR::KV().Set(key, value); YR::GetParam param = { .offset = 0, .size = 0 }; YR::GetParams params; params.getParams.emplace_back(param); std::vector<std::shared_ptr<YR::Buffer>> res = YR::KV().GetWithParam({ key }, params); return 0; }
- 参数:
keys - 要检索值的键列表。键的最大数量为
10000。params - 一个包含检索操作参数的结构体,每个键包括偏移量(offset)、大小(size)和追踪ID(traceId)。
timeout - 等待检索值的最大时间,以秒为单位。默认值为
300秒。设置为-1表示无限期等待。
- 抛出:
Exception- 在以下情况下抛出:1001: 输入参数无效(例如,键为空、大小不匹配或包含无效字符)。
4005:Get 操作失败(例如,键未找到或超时)。
4201:RocksDB 错误(例如,磁盘问题)。
4202:共享内存超出限制。
4203:磁盘操作失败(例如,权限问题)。
4204:磁盘空间已满。
3002:内部通信错误。
- 返回:
std::vector<std::shared_ptr<YR::Buffer>>,一个包含检索到的数据的向量。结果的顺序与键的顺序相对应。失败的键将包含空指针。
参数结构补充说明如下: