客户端在连接redis推送一次数据成功后,第二次使用相同tcp端口推送时,会发送RST重置。
redis中有参数可以设置,避免这种现象吗?

第一次正常推送数据:

redis cli重连 redis连接被重置_redis cli重连


第二次推送数据reset:

redis cli重连 redis连接被重置_推送_02

 

个人推测是因为 redis 的超时时间与服务器的超时时间不一致导致:

服务器tcp超时时间,通过该命令查看为 60 s

sysctl -a | grep net.ipv4.tcp_fin_timeout

redis cli重连 redis连接被重置_redis_03

redis设置的tcp超时时间及keepalive时间,默认为 300 s

redis cli重连 redis连接被重置_redis_04

上图我把 tcp-keepalive 调整到了 60 ,实际中还是会出现 RST 包,下周生产上线时,我再更新 timeout 参数,看看是否能修复。