我正在使用GO Redis客户端Redigo将映像写入约20个Redis服务器。
速度是这里的一个重要因素,我只是将设置命令发送到Redis,所以我使用Send和Flush而不调用Receive。
几个小时后,我在客户端上收到“对等连接重置”。
我想知道,这与我不称呼接收有关吗?
也许我的RX队列刚刚达到其最大容量,因为我没有用Receive清空它?
谢谢。
应用程序必须调用Receive来清除服务器的响应并检查错误。如果应用程序不对命令进行流水线处理,那么最好调用Do。合并发送,刷新和接收。
如果您不关心错误,请启动goroutine读取响应:
go func(c redis.Conn) {
for c.Err() == nil {
c.Receive()
}
}()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句