Springboot中redis使用lettuce連接池經(jīng)常連接超時問題分析及解決
環(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)文章
Java中的線程同步與ThreadLocal無鎖化線程封閉實現(xiàn)
這篇文章主要介紹了Java中的線程同步與ThreadLocal無鎖化線程封閉實現(xiàn),Synchronized關(guān)鍵字與ThreadLocal變量的使用是Java中線程控制的基礎(chǔ),需要的朋友可以參考下2016-03-03
SpringCloud Gateway網(wǎng)關(guān)功能介紹與使用
SpringCloud Gateway 是 Spring Cloud 的一個全新項目,它旨在為微服務(wù)架構(gòu)提供一種簡單有效的統(tǒng)一的 API 路由管理方式。這篇文章主要介紹了SpringCloud Gateway網(wǎng)關(guān)作用,需要的朋友可以參考下2022-12-12
Java面試之如何實現(xiàn)10億數(shù)據(jù)判重
當(dāng)數(shù)據(jù)量比較大時,使用常規(guī)的方式來判重就不行了,所以這篇文章小編主要來和大家介紹一下Java實現(xiàn)10億數(shù)據(jù)判重的相關(guān)方法,希望對大家有所幫助2024-02-02
Android與iOS設(shè)備MAC地址生成原理及Java實現(xiàn)詳解
在無線網(wǎng)絡(luò)通信中,MAC(Media Access Control)地址是設(shè)備的唯一網(wǎng)絡(luò)標(biāo)識符,本文主要介紹了Android與iOS設(shè)備MAC地址生成原理以及Java實現(xiàn)方法,需要的可以了解下2025-05-05
Java并發(fā)利器CountDownLatch深度解析與實戰(zhàn)應(yīng)用小結(jié)
CountDownLatch就像一個倒計時器,當(dāng)所有任務(wù)完成后,主線程才繼續(xù)執(zhí)行,本文將通過簡單易懂的方式,帶你掌握這個強(qiáng)大的并發(fā)工具,需要的朋友可以參考下2025-06-06

