转载

【解决】 Spring Boot Redis io.lettuce.core.RedisCommandTimeoutException: Command timed out

springboot(spring也一样的)整个redis 的时候报如下错误:

  1. org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out  
  2.  at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:70) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  3.     at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  4.  at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  5.     at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  6.   at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:257) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  7.     at org.springframework.data.redis.connection.lettuce.LettuceConnection.pSubscribe(LettuceConnection.java:747) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  8.   at org.springframework.data.redis.listener.RedisMessageListenerContainer$SubscriptionTask.eventuallyPerformSubscription(RedisMessageListenerContainer.java:783) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  9.     at org.springframework.data.redis.listener.RedisMessageListenerContainer$SubscriptionTask.run(RedisMessageListenerContainer.java:750) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  10.  at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]  
  11.   
  12. Caused by: io.lettuce.core.RedisCommandTimeoutException: Command timed out  
  13.     at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114) ~[lettuce-core-5.0.2.RELEASE.jar:na]  
  14.   at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:62) ~[lettuce-core-5.0.2.RELEASE.jar:na]  
  15.     at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80) ~[lettuce-core-5.0.2.RELEASE.jar:na]  
  16.   at com.sun.proxy.$Proxy70.psubscribe(Unknown Source) ~[na:na]  
  17.     at org.springframework.data.redis.connection.lettuce.LettuceSubscription.doPsubscribe(LettuceSubscription.java:54) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  18. at org.springframework.data.redis.connection.util.AbstractSubscription.pSubscribe(AbstractSubscription.java:130) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  19.     at org.springframework.data.redis.connection.lettuce.LettuceConnection.pSubscribe(LettuceConnection.java:745) ~[spring-data-redis-2.0.5.RELEASE.jar:2.0.5.RELEASE]  
  20.    ... 3 common frames omitted  </libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:></libox-sizing:>



错误原因:连接超时时间设置的过于短暂(我这边设置成了0),修改为5000左右即可

  1. # REDIS (RedisProperties)  
  2. # Redis数据库索引(默认为0)  
  3. spring.redis.database=0  
  4. # Redis服务器地址  
  5. spring.redis.host=192.168.30.103  
  6. # Redis服务器连接端口  
  7. spring.redis.port=6379  
  8. # Redis服务器连接密码(默认为空)  
  9. spring.redis.password=  
  10. # 连接池最大连接数(使用负值表示没有限制)  
  11. spring.redis.jedis.pool.max-active=8  
  12. # 连接池最大阻塞等待时间(使用负值表示没有限制)  
  13. spring.redis.jedis.pool.max-wait=-1  
  14. # 连接池中的最大空闲连接  
  15. spring.redis.jedis.pool.max-idle=8  
  16. # 连接池中的最小空闲连接  
  17. spring.redis.jedis.pool.min-idle=0  
  18. # 连接超时时间(毫秒)  
  19. spring.redis.timeout=5000  

原文地址:https://blog.csdn.net/gwd1154978352/article/details/79630245

正文到此结束
Loading...