Redis plus plus set 在循环中非常延迟

Redis plus plus set is very delayed in loop

我正在尝试在这段代码中将数据设置到 Redis 集群:(我正在使用这个 https://github.com/sewenew/redis-plus-plus#redis-cluster

QByteArray request = m_client.readAll();
qDebug() << "get data from" << bk[static_cast<int>(id) - 1];
QString mess = QTextCodec::codecForMib(106)->toUnicode(request);
//    messss.fromUtf8(request);
QStringList l_mess = mess.split("|");

QRegularExpression  key("\"key\": \"(.*?)\"");
QRegularExpressionMatch m_key;

qDebug() << "Count " << l_mess.count();
for (int i = 0; i < l_mess.count(); i++)
{
    m_key = key.match(l_mess[i]);
    cluster1->set(m_key.captured(1).toStdString(), l_mess[i].toStdString());
    cluster1->rpush("fonbet", "i"/*m_key.captured(1).toStdString()*/);
}

而当l_mess.count()刚刚超过100或200时,"for"循环中的延迟时间超过20秒!!

我试过设置静态key-value,但是延迟是一样的。我做错了什么?

您正在发送 200-400 个命令,您看到每个命令有 200-400 毫秒,大部分时间是网络延迟,RTT(往返时间)。

要提高性能,请使用 pipeline 减少 RTT。

当涉及到集群时,请务必查看 Pipeline and Transaction of redis-plus-plus 部分。