0


异常:Springboot中redis使用lettuce连接池经常连接超时解决

Springboot中redis使用lettuce连接池经常连接超时解决

环境

Springboot 2.4.4 + mysql 
redis使用 lettuce作连接池

依赖

     <!--springboot中的redis依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

配置

在这里插入图片描述

1. 问题点:项目启动后,一段时间过后redis自动掉线

io.lettuce.core.RedisCommandTimeoutException: Command timed out

2. 问题分析:

这是lettuce-core的实现里,有类似心跳机制的保持长连接方式,不过心跳机制是不停的来回发心跳包直到连接不可用再去被动重新连接,而lettuce的方案是将连接池里处于空闲(idle)状态的client每隔一段时间就主动断开,然后再重新连接。

3.解决方案如下:

-springboot2.3以上版本,可添加配置解决。
在这里插入图片描述

  • 或者排除lettuce,采用jedis。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency>

结果:redis正常

在这里插入图片描述

标签: redis spring boot java

本文转载自: https://blog.csdn.net/forever_xw_/article/details/129633523
版权归原作者 夕夕夕兮 所有, 如有侵权,请联系我们删除。

“异常:Springboot中redis使用lettuce连接池经常连接超时解决”的评论:

还没有评论