gpt4 book ai didi

c++ - redis_client::get 需要一秒以上的时间来回复

转载 作者:可可西里 更新时间:2023-11-01 11:24:38 26 4
gpt4 key购买 nike

我在 Redis git hub 上发布了这个问题,如果我看到任何回复,我会更新双方。

在 VisualStudio 2015、x64 上运行 C++

我注意到调用“get”需要将近 2 秒来返回一个值。我的 key 是“Control:107:1”;我在我的本地机器上运行一个 Redis 服务器;它有大约 200 个键。

我什至解构了命令:redis_client->get(key).get() 所以我可以测量时间 - 这是我的代码:

<...snip...>
cpp_redis::future_client* redis_client = new cpp_redis::future_client();
redis_client::connect(host, port, nullptr);
<...snip...>

string r;

auto startTime = std::chrono::steady_clock::now();

auto get = redis_client->get(key);

auto endTime = std::chrono::steady_clock::now();
__int64 iDiff2 = (std::chrono::duration_cast<std::chrono::microseconds>(endTime - startTime).count()) / 1000;
std::cout << "redis_client->get(" << key << ") " << iDiff2 << std::endl;

auto val = get.get();

auto endTime2 = std::chrono::steady_clock::now();
__int64 iDiff3 = (std::chrono::duration_cast<std::chrono::microseconds>(endTime2 - endTime).count()) / 1000;
std::cout << "get.get() " << iDiff3 << std::endl;

if (!val.is_null() && val.is_string())
{
auto startTime = std::chrono::steady_clock::now();

r = val.as_string();

auto endTime = std::chrono::steady_clock::now();
__int64 iDiff2 = (std::chrono::duration_cast<std::chrono::microseconds>(endTime - startTime).count()) / 1000;
std::cout << "val.as_string() " << iDiff2 << std::endl;
}

return r;

我的打印结果是:

redis_client->get(Control:107:1) 0

get.get() 1939

val.as_string() 0

我得到类似的结果 key 是否存在。

(请注意,当我打印测量的微秒时,我将除以 1000,因此打印以毫秒为单位!)

请帮助我理解......谢谢你米娅

最佳答案

底线: 我的 Redis 服务器版本很旧。使用较新的版本,我经历了更好的“获取”时间,正如 Tomasz Poradowski 在评论中所指出的那样,您可以在细节中看到

我希望有人(也许复活 MS OpenTech?)恢复对 Redis 服务器高级版本的 Windows 支持。

关于c++ - redis_client::get 需要一秒以上的时间来回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com