1. 程式人生 > >springboot 2.0 Redis command timed out的解決

springboot 2.0 Redis command timed out的解決

開發十年,就只剩下這套架構體系了! >>>   

環境:springboot 2.0.7 spring data redis

springboot從1.x升級到2.x後,spring data redis使用的redis客戶端驅動從1.x的jedis換到lettuce

使用過程中,出現Redis command timed out報錯,網上搜索後,很多文章都說配置項spring.redis.timeout在1.x可以設為0代表無限超時時間,而2.x必須要設定一個大於0的數,按此配置後確實正常了一段時間,但還是偶爾出現這問題

 

此時問題的症狀是:

timed out報錯的時機不確定,但一個較高几率的情況是,功能很久沒用時,第一次用報錯機率很高,然後第二次以後就正常

報錯時一觸發功能就報錯,根本不像是超時,要等待一段時間才報錯

 

最終解決方法是,把redis驅動換回jedis,具體方法請百度這裡不展開

PS:在lettuce的github的issue有幾個此問題的討論,很多人跟我的情況也是一樣出現timed out但都找不到規律和原因,而且討論到結尾也沒結果,只能