赞
踩
问题描述:
项目开发的过程中,应业务需求将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社区。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。