io.lettuce.core.RedisCommandTimeoutException: Command timed out 解决办法


问题描述:

项目开发的过程中,应业务需求将Redis作为缓存服务器整合进了Spring Boot的项目中,在初测试的时候,遇到连接超时的情况,错误信息如下:

Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.159.132:6379
    at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
    at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:233)
    at io.lettuce.core.RedisClient.connectStandalone(RedisClient.java:253)
    at io.lettuce.core.RedisClient.connect(RedisClient.java:202)
    at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:56)
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:959)
    ... 41 more
Caused by: io.lettuce.core.RedisCommandTimeoutException: Command timed out
    at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114)
    at io.lettuce.core.AbstractRedisAsyncCommands.auth(AbstractRedisAsyncCommands.java:81)
    at io.lettuce.core.RedisClient.lambda$connectStatefulAsync$2(RedisClient.java:324)
    at io.lettuce.core.RedisClient$$Lambda$436/1235678342.apply(Unknown Source)
    at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
    at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
    at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
    at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:745)

如下图:
这里写图片描述


解决办法:

解析Redis配置文件,Redis主要的yaml配置文件如下:

  # redis 相关配置
  redis:
    #  数据库索引
    database: 0
    # 远程服务器地址
    host: 192.168.159.***
    # 远程服务器端口
    port: 6379
    # 验证码
    password: ******
    jedis:
      pool:
        # 最大空闲连接
        max-idle: 8
        # 最小空闲链接
        min-idle: 0
        # 最大连接数(负数表示没有限制)
        max-active: 8
        # 最大阻塞等待时间(负数表示没有限制)
        max-wait: 0
    # 链接超时时间(毫秒)
    timeout: 50

请注意,上面的配置参数,timeout 为 50,单位为毫秒,由此参数设置过小导致的,将这个参数设值得更大些,如200或以上!
timeout 这个在实际的生产环境中非常有用,就不具体的阐述了,自己去体会。。。
调整Redis的配置参数后,再次测试业务操作就成功了,如下图:
这里写图片描述


好了,关于 io.lettuce.core.RedisCommandTimeoutException: Command timed out 解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。

猜你喜欢

转载自blog.csdn.net/Hello_World_QWP/article/details/81184279
今日推荐