问题描述
使用 Springboot(Windows下)连接 redis(云服务器)开发时发现一些问题:连接成功的情况下,在一段时间未交互数据后
,再次通过连接与Redis传输数据回出现异常 java.io.IOException: 远程主机强迫关闭了一个现有的连接
。
解决方案:
- 修改配置文件
redis.conf
timeout 0
tcp-keepalive 60
timeout
,单位是秒,如果客户端连接空闲时间达到这个时间,就闭掉这个连接。(0表示禁止)tcp-keepalive
,单位是秒,空闲时间达到这个时间就发送一个tcp-keepalive心跳包,用于检测客户端(在这里就是我的springboot程序)是否在线
- SpringBoot 配置 redis 的 timeout
redis:
host: localhost
port: 6379
timeout: 60s # 连接超时时间 60s
- 重启redis(服务)
参考
https://blog.csdn.net/qq_29864051/article/details/131201379
https://blog.csdn.net/Baibair/article/details/120515573