轉載:https://blog.csdn.net/wozniakzhang/article/details/98766926
使用Redis后,會有時出現連接超時問題
io.lettuce.core.RedisCommandTimeoutException: Command timed out after 5 second(s)
at io.lettuce.core.ExceptionFactory.createTimeoutException(ExceptionFactory.java:51) ~[lettuce-core-5.1.6.RELEASE.jar:na]
at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114) ~[lettuce-core-5.1.6.RELEASE.jar:na]
***省略一些*******************************************************************
[na:1.8.0_191]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.19.jar:9.0.19]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191]
解決方法:
1、找到redis.conf配置文件
將tcp-keepalive改成1-50左右的數字,之前是0或者300,改成小一點的數字就行了,原理百度或者根據配置文件的注釋英文翻譯一下,記得改完重啟Redis.
2、在 .properties Redis 配置加入lettuce.shutdown-timeout=100,大於Redis服務器配置的 tcp-keepalive 存活時間(比如60)就行,
你想吧,超時100>60符合正常邏輯,如果超時關閉時長<存活時長(tcp-keepalive)

