本地idea部署和docker部署問題,連接同一個(gè)redis,idea項(xiàng)目的redis緩存,docker中取不到,docker中緩存的redis本地取不到
? 原因:idea本地代碼實(shí)體類未進(jìn)行代碼混淆,docker代碼實(shí)體類進(jìn)行了混淆,導(dǎo)致對(duì)象存在,但是對(duì)象屬性值為nul
debug反序列化源碼如下 讀取到的字段為A,實(shí)體類中為具體的屬性,不存在A,找到問題所在
?當(dāng)時(shí)排查了如下幾個(gè)方面
- 實(shí)體類是否進(jìn)行序列化,序列化id是否指定
- 實(shí)體類注解是否有問題,是否存在set/get方法
- idea中和docker中使用的spring-boot-data-redis的jar版本是否一致
- redis使用的序列化是否一致
- redis指定value的序列化類JdkSerializationRedisSerialier,更換idea的jdk和docker一致
- 將存在問題的緩存放到和能正常取到的項(xiàng)目中進(jìn)行測試,避免不同包存在不同的處理情況
- debug源碼看是存儲(chǔ)到redis就有問題,還是從redis取的有問題
?? 最后終于找到是代碼混淆的問題,代碼混淆時(shí)排除實(shí)體類解決問題
ps: 看源碼最終肯定能解決問題的文章來源:http://www.zghlxwxcb.cn/news/detail-542169.html
這次用了差不多兩天一度要放棄了,還好堅(jiān)持到最后解決的問題文章來源地址http://www.zghlxwxcb.cn/news/detail-542169.html
到了這里,關(guān)于跨應(yīng)用連接同一個(gè)redis,從redis取緩存,對(duì)象屬性值都為null的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!