springboot应用embedded-redis报错Can‘t start redis server

问题

springboot应用embedded-redis进行单测时出现java.lang.RuntimeException: Can’t start redis server. Check logs for details.
Debug后发现问题出现在

1713752939593.jpg

outputLine的内容是:Creating Server TCP listening socket *:6379: bind: No error和redisReadyPattern不匹配

分析原因

端口6379被redis进程占用

1713752949240.jpg

最后的Afterclass中的redisServer.stop可能因为异常或者debug未正常结束

解决方法

方法一:

(1)打开cmd,查看端口6379是否被某个进程占用,跳出一个空白cmd说明被占用

telnet 127.0.0.1 6379

(2)重新打开一个cmd,查看端口6379被哪个进程id占用,查出pid是16400

netstat -ano | findstr 6379

1713753016602.jpg

(3)杀死这个16400进程

taskkill -PID 16400 -F

(4)依次转第(2)步、第(1)步指令查看端口6379是否还被占用,未被占用

方法二:

很简单,将下图中的port端口换个6381或其他的端口运行

1713753042138.jpg

最终,重新运行单测,成功!!!