gpt4 book ai didi

c++ - hiredis ,如何检查是否有更多数据可供读取

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

我正在尝试使用 hiredis 编写连接池。我面临的问题是,如果用户触发命令但没有从连接读取响应,我应该在放入连接池之前清除该连接的响应。

有没有办法检查:

  1. 是否有更多数据要读取?所以我可以做 redisGetReply ,直到所有数据都被清除。
  2. 或者有没有办法清除连接对象上的所有未决读取?

最佳答案

问题不明确,因为它没有说明您使用的是同步操作还是异步操作。

  • 你提到了 redisGetReply,我会假设使用同步操作。同步调用将阻塞调用。对命令的响应将在同一个调用中可用。您可能想要检查是否所有数据都已读取的场景是在线程之间共享上下文并且您在将连接返回到池之前检查数据。

    是的,redisGetReply 可用于检查是否有更多数据要读取。

    对于异步调用,使用 redisAsyncHandleRead 检查是否有数据要读取。

在内部,redisGetReply 和 redisAsyncHandleRead 都会调用 redisBufferRead。

  • 对于同步调用,使用 redisFree 清除上下文。对于 Aysnc 调用,使用 redisAsyncFree 清除上下文。

关于c++ - hiredis ,如何检查是否有更多数据可供读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630357/

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