Springboot中redis使用lettuce連接池經(jīng)常連接超時問題分析及解決
更新時間:2025年11月17日 08:58:51 作者:夕夕夕兮
文章主要介紹了在Spring?Boot項目中,使用Lettuce作為Redis客戶端時遇到的問題——連接在一段時間后會自動掉線,問題的根源在于Lettuce的空閑連接處理機(jī)制,文章提供了Spring?Boot?2.3及以上版本的解決方案,即通過配置解決,或者排除Lettuce并采用Jedis
環(huán)境
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的實現(xiàn)里,有類似心跳機(jī)制的保持長連接方式,不過心跳機(jī)制是不停的來回發(fā)心跳包直到連接不可用再去被動重新連接,而lettuce的方案是將連接池里處于空閑(idle)狀態(tài)的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>
結(jié)果:redis正常
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- SpringBoot集成Lettuce客戶端操作Redis的實現(xiàn)
- SpringBoot整合redis+lettuce的方法詳解
- 關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例
- SpringBoot2.4.2下使用Redis配置Lettuce的示例
- springboot集成redis lettuce
- 關(guān)于SpringBoot整合redis使用Lettuce客戶端超時問題
- springboot redis使用lettuce配置多數(shù)據(jù)源的實現(xiàn)
- 關(guān)于Springboot2.x集成lettuce連接redis集群報超時異常Command timed out after 6 second(s)
相關(guān)文章
SpringBoot中@ControllerAdvice注解的使用方法
這篇文章主要介紹了SpringBoot中@ControllerAdvice注解的使用方法,這是一個增強(qiáng)的?Controller,對controller層做異常處理、數(shù)據(jù)預(yù)處理、全局?jǐn)?shù)據(jù)綁定,?springboot?會自動掃描到,不需要調(diào)用,這個注解是spring?MVC提供的,在springboot中也可以使用,需要的朋友可以參考下2024-01-01
Spring Security攔截器引起Java CORS跨域失敗的問題及解決
這篇文章主要介紹了Spring Security攔截器引起Java CORS跨域失敗的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
java如何接收和發(fā)送ASCII數(shù)據(jù)
這篇文章主要介紹了java如何接收和發(fā)送ASCII數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

