C++ redis_client::get需要一秒钟以上的时间才能回复

C++ redis_client::get需要一秒钟以上的时间才能回复,c++,redis,C++,Redis,我在Redis git hub上发布了这个问题,如果我看到任何回复,我将更新双方 VisualStudio 2015、X64 上运行C++ 我注意到调用“get”几乎需要2秒钟才能返回值。 我的钥匙是“控制:107:1”;我正在本地机器上运行Redis服务器;它有大约200把钥匙 我甚至解构了命令:redis\u client->get(key).get(),这样我就可以测量计时了——下面是我的代码: <...snip...> cpp_redis::future_client* r

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

VisualStudio 2015、X64

上运行C++ 我注意到调用“get”几乎需要2秒钟才能返回值。 我的钥匙是“控制:107:1”;我正在本地机器上运行Redis服务器;它有大约200把钥匙

我甚至解构了命令:redis\u 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;

cpp_redis::future_client*redis_client=新cpp_redis::future_client();
redis_客户端::connect(主机、端口、空PTR);
字符串r;
自动启动时间=标准::计时::稳定时钟::现在();
自动获取=redis_客户端->获取(键);
自动结束时间=标准::计时::稳定时钟::现在();
__int64 iDiff2=(std::chrono::duration_cast(endTime-startTime).count())/1000;
标准::cout底线:
我的Redis服务器版本非常旧。
在更新的版本中,我经历了更好的“获取”时间,正如Tomasz Poradowski在评论中指出的细节所示


我希望有人(可能会复活微软OpenTech?)恢复windows对Redis server高级版本的支持。

尝试使用(免责声明:我是它的作者):它不使用官方的Redis解析器(
hiredis
library),这就是它在windows上完美编译的原因。这取决于boost(
boost::asio
)库,它在Windows上也可以正常工作。

任何对细节感兴趣的人都可以在Github上找到我们关于这个主题的讨论:谢谢Ivan;我会查出来的。伊凡,你是作者,对吗?你应该添加一个声明这样说!