本文小編為大家詳細介紹“SpringBoot整合redis客戶端超時怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“SpringBoot整合redis客戶端超時怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

成都創新互聯是專業的達茂旗網站建設公司,達茂旗接單;提供成都網站建設、網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行達茂旗網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
問題
在開發的時候,使用到Lettuce連接redis,一段時間后不操作,再去操作redis,會報連接超時錯誤,在其重連后又可使用。
原因是:Lettuce 自適應拓撲刷新(Adaptive updates)與定時拓撲刷新(Periodic updates) 是默認關閉的導致問題的出現
解決的方案
方法一:
1、重寫連接工廠實例,更改其LettuceClientConfiguration 為開啟拓撲更新
@Configuration
public class RedisConfig {
@Autowired
private RedisProperties redisProperties;
//這是固定的模板
//自己定義了一個RedisTemplate
@Bean
@SuppressWarnings("all")
public RedisTemplate redisTemplate(@Qualifier("lettuceConnectionFactoryUvPv") RedisConnectionFactory factory) {
RedisTemplate template = new RedisTemplate<>();
template.setConnectionFactory(factory);
//Json序列化配置
Jackson2JsonRedisSerializer
2、SpringBoot2.3.x后,可使用配置文件中開啟lettuce的拓撲刷新
lettuce:
pool:
max-active: 20
max-wait: -1ms
max-idle: 10
min-idle: 2
cluster:
refresh:
adaptive: true
#20秒自動刷新一次
period: 20
方法二:
更改連接redis的連接方式,使用jedis連接
org.springframework.boot
spring-boot-starter-data-redis
io.lettuce
lettuce-core
redis.clients
jedis
配置文件
spring:
redis:
password: xxx
host: 172.16.0.x
port: 6579
timeout: 5000
jedis:
pool:
#最大連接數據庫連接數,設 0 為沒有限制
max-active: 8
#最大等待連接中的數量,設 0 為沒有限制
max-idle: 8
#最大建立連接等待時間。如果超過此時間將接到異常。設為-1表示無限制。
max-wait: -1ms
#最小等待連接中的數量,設 0 為沒有限制
min-idle: 0
#lettuce:
#pool:
#max-active: ${redis.config.maxTotal:1024}
#max-idle: ${redis.config.maxIdle:50}
#min-idle: ${redis.config.minIdle:1}
#max-wait: ${redis.config.maxWaitMillis:5000}
讀到這里,這篇“SpringBoot整合redis客戶端超時怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。
分享文章:SpringBoot整合redis客戶端超時怎么解決
瀏覽路徑:
http://www.xueling.net.cn/article/gjsisi.html