Конвейерная обработка запроса/ответа с помощью 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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