環境: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但都找不到規律和原因,而且討論到結尾也沒結果,只能認為是lettuce的bug.