【redis】SpringBoot3 使用redis出現NOAUTH Authentication required.的錯誤
前言
問題點:
原本懷疑可能是redis版本問題,因為現行環境用的是redis3,官方已更新到redis6,
後來發現是properties的寫法有差。
因為公司大部分都還是用spring boot 2,直接照著用的話,會導致springboot一直讀不到redis密碼,
出現NOAUTH Authentication required.的錯誤。
NOAUTH Authentication required.
這段錯誤原因是因為
redis本身配置有設定密碼
那怎麼看redis是否有設定密碼可以滑到文末看看,這邊先記錄解決方法。
解法
兩個springboot版本的差別在於 springboot 3 多了 data
配置redis的寫法
springboot 2
spring.redis.password
範例:
1 | spring.redis.host=127.0.0.1 |
springboot 3
spring.data.redis.password
1 | spring.data.redis.host=127.0.0.1 |
要怎麼看redis是否有設置密碼?
方法1: redis.windows.conf (密碼未知)
打開配置檔 redis.windows.conf
會看到有一個
requirepass
1 | requirepass your_password |
如果這段沒有註解代表有使用密碼
如果是有配置但是密碼沒生效,有可能是啟動redis的方式不對
要使用
1 | redis-server redis.windows.conf |
才會吃到redis配置檔的設定
方法2: redis-cli.exe (已知密碼)
點擊這個 redis-cli.exe
直接輸入 ping
會出現 NOAUTH Authentication required.
代表需要密碼
接著輸入
1 | auth your_password |
出現OK 就代表密碼是對的,通過驗證
再打一次ping就可以正常出現pong
以上就是判斷redis是否有設置密碼的兩種方式
補充
那在爬文解問題的過程中發現springboot2 springboot3有另一個很大的差別是
springboot 2 預設是jedis
springboot 3 預設是lettuce
但是詳細的差別可能之後再研究
過去的開發經驗都是走lettuce
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 QuL's Technical Blog!