close掉redis,但是查看tcp连接,还会保持一定数量的tcp 连接 状态time_out。虽然客户端关闭了连接,但是系统依然会保持这个tcp连接一段时间,时间是msl的2倍,通常是1分钟。使用命令 cat /proc/sys/net/ipv4/tcp_fin_timeout可查看系统保持时间.
MSL 是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。
2MSL即两倍的MSL,TCP的TIME_WAIT状态也称为2MSL等待状态
可尝试对redis的连接类做了修改,使用单例,将连接资源存入一个static变量数组中,注意获取连接资源时,需要加上ping,判断该连接资源是否可用。防止redis服务端主动断开连接或者超时,使该连接失效。
暂时未做测试,先保存一下,有时间测试
本文探讨了在关闭Redis连接后,为何TCP连接仍保持TIME_WAIT状态的原因。深入解析了MSL参数对连接关闭的影响,并提出了通过连接池和连接健康检查来优化Redis连接管理的策略。
9054

被折叠的 条评论
为什么被折叠?



