Конвейерная обработка запроса/ответа с помощью boost::redisC++

Программы на C++. Форум разработчиков
Anonymous
Конвейерная обработка запроса/ответа с помощью boost::redis

Сообщение Anonymous »

Имея в виду задачу — выполнить HGETALL для всех ключей, соответствующих шаблону (потенциально миллионы).
Я получаю ключи в одном соединении и одновременно выполняю HGETALL в другом соединении. Это по-прежнему не устраняет задержку HGETALL туда и обратно, от которой я хотел бы полностью избавиться.
Что я хочу сделать, так это отправить запросы HGETALL с окном в полете, как это есть нет завтра.
Я знаю, что могу выполнить один запрос с несколькими HGETALL-ами*, но тогда мне все равно придется ждать ответа и время от времени платить за эту задержку.
*- хотя я все еще еще предстоит выяснить, как сформировать тип ответа для такого запроса, чтобы он не имел статического размера.
Есть ли лучший способ?
Я используя синтаксис сопрограмм, поэтому код теперь будет выглядеть так:

Код: Выделить всё

auto request = redis::request{};
request.push("HGETALL", key);
auto response = redis::response{};
co_await conn->async_exec(request, response, asio::deferred);
Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/790 ... boostredis

Вернуться в «C++»