我正在使用 GO redis 客户端 redigo 将图像写入 ~20 个 redis 服务器。速度在这里是一个重要因素,我只是向 redis 发送设置命令,所以我使用 Send 和 Flush 而不调用 Receive。几个小时后,我在客户端上收到“对等连接重置”。我想知道,这与我不打电话给 Receive 的事实有关吗?也许我的 RX 队列刚刚达到其最大容量,因为我没有用 Receive 清空它?谢谢你。
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
应用程序必须调用 Receive 来清除来自服务器的响应并检查错误。如果应用程序不是流水线命令,那么最好调用 Do。Do 结合了发送、刷新和接收。
如果你不关心错误,那么启动一个 goroutine 来读取响应:
go func(c redis.Conn) {
for c.Err() == nil {
c.Receive()
}
}()
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
0/150
提交
取消