SpringBoot切換Redis的DB踩坑

2021-10-01 23:27:14 字數 763 閱讀 6982

先簡單記錄一下解決方案,以後有空詳細補下斷點過程。

我用的版本如下

org.springframework.data

spring-data-redis

2.2.0.release

有乙個需求需要切換db寫入資料,然後在網上找到的大多數解決方案如下:

lettuceconnectionfactory lettuceconnectionfactory = (lettuceconnectionfactory) redistemplate.getconnectionfactory();

lettuceconnectionfactory.setdatabase(2);

redistemplate.setconnectionfactory(lettuceconnectionfactory );

lettuceconnectionfactory.resetconnection();

使用後發現不起作用,於是斷點追根溯源,發現原來resetconnnection()方法只會釋放connection物件,redisclient中的redisurl物件的屬性並未重新整理,導致重新生成的connection物件的db值仍未改變,隨意切換未生效。

隨後尋找重新整理redisclient的方法,最終解決方案如下:

lettuceconnectionfactory.afterpropertiesset(),在最後呼叫此方法即可重新整理redisclient,重新整理時會自動取lettuceconnectionfactory內部屬性的db值填充,db切換成功。

springboot 動態切換環境

springboot 動態切換環境 一般我們在開發中會有 開發 測試 預生產 生產環境的分類,這個時候我們會遇到在專案部署打包的時候需要動態的去切換環境,怎樣去實現動態環境的切換呢?好了,廢話不多說直接整乾貨。1 首先我們在springboot的pom.xml中新增專案中的環境配置,如圖 我們這邊先...

springboot多環境切換

profile是spring對不同環境提供不同配置功能的支援,可以通過啟用不同的環境版本,實現快速切換環境 1.配置檔案我們需要通過乙個配置來選擇需要啟用的環境 比如在配置檔案中指定使用dev環境,我們可以通過設定不同的埠號進行測試 我們啟動springboot,就可以看到已經切換到dev下的配置了...

SpringBoot 日誌 切換日誌框架

在sprinboot切換日誌框架其實是不提倡的,使用預設的slf4j logback就可以了,但非要換也沒辦法是把哈哈 從logback切換到log4j,使用log4j作為實現 1.參照log4j和slf4j的關係圖 3.加入適配log4j的jar包,該包直接依賴了log4j的jar包,所以就不必再...