客戶端在連接redis推送一次數據成功後,第二次使用相同tcp端口推送時,會發送RST重置。
redis中有參數可以設置,避免這種現象嗎?
第一次正常推送數據:
第二次推送數據reset:
個人推測是因爲 redis 的超時時間與服務器的超時時間不一致導致:
服務器tcp超時時間,通過該命令查看爲 60 s
sysctl -a | grep net.ipv4.tcp_fin_timeout
redis設置的tcp超時時間及keepalive時間,默認爲 300 s
上圖我把 tcp-keepalive 調整到了 60 ,實際中還是會出現 RST 包,下週生產上線時,我再更新 timeout 參數,看看是否能修復。