我正在使用 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 關注
- 193 瀏覽
添加回答
舉報
0/150
提交
取消