當前位置:
首頁 > 最新 > 動態添加Redis密碼認證

動態添加Redis密碼認證

如果redis已在線上業務使用中,但沒有添加密碼認證,那麼如何在不影響業務服務的前提下給redis添加密碼認證,就是一個需要仔細考慮的問題。

本文描述一種可行的方案,適用於客戶端使用了jedis連接池,服務端使用了redis master-slave集群的情況。

1.定製jedis

對redis返回的錯誤的處理,做兩處修改:

忽略 (error) ERR Client sent AUTH, but no password is set。使配置了密碼的jedis可以在沒有配置密碼redis上使用;

發生(error) NOAUTH Authentication required時,將當前connection置為broken,從而將連接踢出連接池。這樣動態給redis添加上密碼時,jedis會自動重新創建可用連接。

我已經對jedis 2.8.x版本做好了以上修改。可以直接下載使用 。如果使用了更高的版本jedis,可以參考我的代碼自行修改;如果使用了更低版本的,建議升級到2.8.x。

2.在項目代碼中使用定製的jedis

修改maven配置。將原來的jedis依賴注釋掉,添加對本地的定製jedis的依賴:

redis.clients jedis 2.8.3 system $/../libs/jedis-2.8.3.jar org.apache.commons commons-pool2 2.4.2

因為把定製jedis通過本地jar包的形式提供,maven不會自動載入jedis的依賴,所以需額外添加對commons-pool2的依賴。

3.如果使用了低版本的jedis

老版本jedis的returnBrokenResource和returnResource這兩個方法在新版本jedis中已經廢棄,如果升級jedis版本的話,需要替換為close方法。

替換前:

try { // ... } catch (JedisException e) { // ... pool.returnBrokenResource(jedis); } finally { pool.returnResource(jedis); }

替換後:

try { // ... } catch (JedisException e) { // ... } finally { jedis.close(); }4.將使用定製jedis的項目代碼上線

此時redis尚未添加密碼,但定製jedis忽略了「ERR Client sent AUTH, but no password is set」,所以線上運行正常。

5.給redis server添加密碼認證

動態添加密碼會導致redis主從同步斷開,為避免引起全量同步對業務造成較大影響。需要dba先調大redis master的client-output-buffer-limit和repl-backlog-size參數,再做配置密碼操作。

給redis server添加密碼的同時,觀察業務代碼的log,添加完密碼後,log中會出現數次如下報錯,隨後恢復正常。報錯次數是添加密碼時,業務伺服器的jedis連接池中與該redis server之間連接數量。

如果使用了shardedJedis,請逐個分片進行操作,最小化對業務服務的影響。

6.更換jedis為官方版本

定製jedis就是為了動態添加密碼認證。添加完畢後,換回官方jedis,方便今後升級。

redis.clients jedis 2.8.1

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 推酷 的精彩文章:

史玉柱、雷軍是如何從定位理論中找到營銷爆點的?
開發者分享如何與媒介合作進行恰當的產品營銷
JavaScript 起步:「new」 運算符-Hacker Noon
用三角形網格構建三維圖形
移動應用廣告之商業變現的實現策略

TAG:推酷 |

您可能感興趣

Apache用戶認證配置之Basic認證
微軟Windows Hello未來將實現掌紋認證登陸功能
RM官方ins更新Twice出演認證照
Android取得FIDO 2認證,將支持無密碼登錄
Wish認證體系
OpenStack關鍵技術系列:KeyStone鑒權認證系統詳解
微軟發布Windows Defender System Guard運行時認證技術
linux 批量ssh認證
WiFi密碼被破解?WiFi聯盟認證支持WPA3加密協議產品,讓黑客無從下手
雷達Couple Classic天文台認證手錶
Mophie發布首款Qi認證的iPhone X充電保護殼
Meghan Markle 認證!加州品牌Birdies讓隨腳一穿的便鞋奢華升級
了解建築認證機構building certifier
Infortrend更新VMware認證,管理性與安全性雙劍出鞘
Android 將為認證的耳機帶來更多類似 AirPods 的功能
使用CredSniper獲取雙因素認證令牌
iPhone X的Mophie Qi認證充電保護套即將推出
官方認證!Palace x Ralph Lauren聯名系列即將發布!
谷歌將讓Android P的生物識別認證機制變得更加安全
Anker 推出官方認證的 Switch 行動充電器