springboot 2.0 Redis command timed out的解決
阿新 • • 發佈:2019-04-06
環境: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但都找不到規律和原因,而且討論到結尾也沒結果,只能