springboot应用embedded-redis报错Can‘t start redis server
问题
springboot应用embedded-redis进行单测时出现java.lang.RuntimeException: Can’t start redis server. Check logs for details.
Debug后发现问题出现在
outputLine的内容是:Creating Server TCP listening socket *:6379: bind: No error和redisReadyPattern不匹配
分析原因
端口6379被redis进程占用
最后的Afterclass中的redisServer.stop可能因为异常或者debug未正常结束
解决方法
方法一:
(1)打开cmd,查看端口6379是否被某个进程占用,跳出一个空白cmd说明被占用
telnet 127.0.0.1 6379
(2)重新打开一个cmd,查看端口6379被哪个进程id占用,查出pid是16400
netstat -ano | findstr 6379
(3)杀死这个16400进程
taskkill -PID 16400 -F
(4)依次转第(2)步、第(1)步指令查看端口6379是否还被占用,未被占用
方法二:
很简单,将下图中的port端口换个6381或其他的端口运行
最终,重新运行单测,成功!!!