分布式锁Redisson入门案例报错:java.io.IOException: 远程主机强迫关闭了一个现有的连接
分布式锁Redisson入门案例报错:java.io.IOException: 远程主机强迫关闭了一个现有的连接,redis报错
问题描述
在学习黑马点评:分布式锁Redisson快速入门时遇到的问题:
原因分析
Redisson入门案例
Redisson配置类
使用Redisson的类:VoucherOrderServiceImpl
启动项目(只启动一个8081服务),使用jmeter测试:
测试结果:mysql数据库正确被修改,但是idea控制台报错信息如上
可能存在的原因
- Redis超过了最大连接数
- 本地Redis(Windows)原因
- tcp-keepalive和关闭超时时间的问题
解决过程
Redis超过了最大连接数
-
查看当前连接数
info clients
-
查看最大连接数
config get maxclients
测试结果:
如果达到最大连接数后,会导致后面的连接都连接失败,但是发现最大连接数为10000,应该不是这个问题
本地Redis(Windows)原因
由于vmware 启动缓慢,为了方便,使用Windows上安装的Redis做测试,可能存在一些问题
查看当时开启Redis命令:
应该也没问题
tcp-keepalive和关闭超时时间的问题
推荐文章:解决springboot2整合Redis 后某个接口报错 java.io.IOException: 远程主机强迫关闭了一个现有的连接
Linux版Redis解决办法参考上述文章
Windows版Redis修改 [redis.windows.conf] 文件
-
查看 tcp-keepalive
-
保存文件,重启Redis(这里我修改为5,自行决定)
-
重启项目,恢复mysql数据(虽然控制台报错了,但数据依然正常被修改),jmeter再测
控制台未报错:
mysql正常更新:
-
完美解决bug
关闭超时问题暂未发现,如有遇到可以参考这篇文章:Spring Boot整合Redis报错:java.io.IOException: 远程主机强迫关闭了一个现有的连接
给自己打个广告:最近在学黑马程序员Redis入门到实战教程,如果你也在学习这门课程,可以看我写的黑马点评系列文章(持续更新中),希望对你有所帮助
更多推荐
所有评论(0)