最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

動態(tài)添加Redis密碼認證的方法

 更新時間:2017年06月09日 09:01:06   作者:程序員趙鑫  
本篇文章主要介紹了動態(tài)添加Redis密碼認證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

1.定制jedis

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

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

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

我已經(jīng)對jedis 2.8.x版本做好了以上修改??梢灾苯酉螺d使用 。如果使用了更高的版本jedis,可以參考我的代碼自行修改;如果使用了更低版本的,建議升級到2.8.x。

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

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

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.8.3</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/../libs/jedis-2.8.3.jar</systemPath> <!-- 此處的systemPath是jedis-2.8.3所在的相對路徑 -->
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-pool2</artifactId>
  <version>2.4.2</version>
</dependency>
<!--
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.8.1</version>
</dependency>
-->

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

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

老版本jedis的returnBrokenResource和returnResource這兩個方法在新版本jedis中已經(jīng)廢棄,如果升級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添加密碼認證

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

給redis server添加密碼的同時,觀察業(yè)務代碼的log,添加完密碼后,log中會出現(xiàn)數(shù)次如下報錯,隨后恢復正常。報錯次數(shù)是添加密碼時,業(yè)務服務器的jedis連接池中與該redis server之間連接數(shù)量。

復制代碼 代碼如下:

redis.clients.jedis.exceptions.JedisConnectionException: NOAUTH Authentication required.

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

6.更換jedis為官方版本

定制jedis就是為了動態(tài)添加密碼認證。添加完畢后,換回官方jedis,方便今后升級。

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.8.1</version>
</dependency>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Redis列表類型的常用命令小結(jié)

    Redis列表類型的常用命令小結(jié)

    這篇文章給大家整理了在操作Redis列表類型中的常用命令,文章總結(jié)的很全面,對大家學習Redis具有一定的參考借鑒價值,下面來一起看看吧。
    2016-09-09
  • redis?設置生存和過期時間的原理分析

    redis?設置生存和過期時間的原理分析

    這篇文章主要介紹了redis?設置生存和過期時間的原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Redis字典實現(xiàn)、Hash鍵沖突及漸進式rehash詳解

    Redis字典實現(xiàn)、Hash鍵沖突及漸進式rehash詳解

    這篇文章主要介紹了Redis字典實現(xiàn)、Hash鍵沖突以及漸進式rehash的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 嵌入式Redis服務器在Spring Boot測試中的使用教程

    嵌入式Redis服務器在Spring Boot測試中的使用教程

    這篇文章主要介紹了嵌入式Redis服務器在Spring Boot測試中的使用,本文通過實例代碼場景分析給大家介紹的非常詳細,需要的朋友參考下吧
    2021-07-07
  • linux下安裝redis圖文詳細步驟

    linux下安裝redis圖文詳細步驟

    大家好,本篇文章主要講的是linux下安裝redis圖文詳細步驟,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Redis實現(xiàn)會話管理和token認證的示例代碼

    Redis實現(xiàn)會話管理和token認證的示例代碼

    會話管理和身份認證是實現(xiàn)用戶登錄、權限管理等功能的基礎,本文主就來介紹一下Redis實現(xiàn)會話管理和token認證的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Redis BloomFilter實例講解

    Redis BloomFilter實例講解

    這篇文章主要介紹了Redis BloomFilter實例。BloomFilter不需要存儲key,節(jié)省空間,在某些對保密要求非常嚴格的場合有優(yōu)勢。想要進一步了解BloomFilter運用實例的小伙伴可以了解一下這篇文章
    2021-09-09
  • 如何監(jiān)聽Redis中Key值的變化(SpringBoot整合)

    如何監(jiān)聽Redis中Key值的變化(SpringBoot整合)

    測試過程中我們有一部分常量值放入redis,共大部分應用調(diào)用,但在測試過程中經(jīng)常有人會清空redis,回歸測試,下面這篇文章主要給大家介紹了關于如何監(jiān)聽Redis中Key值變化的相關資料,需要的朋友可以參考下
    2024-03-03
  • redis中RDB(Redis Data Base)的機制

    redis中RDB(Redis Data Base)的機制

    本文主要介紹了redis中RDB(Redis Data Base)的機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • win 7 安裝redis服務【筆記】

    win 7 安裝redis服務【筆記】

    Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。
    2016-05-05

最新評論

新化县| 五原县| 铅山县| 渭南市| 贡觉县| 炉霍县| 大余县| 永胜县| 阳春市| 宜川县| 吉首市| 织金县| 平陆县| 巫山县| 阿瓦提县| 定日县| 枣强县| 杭州市| 九龙县| 南投市| 石家庄市| 东辽县| 新营市| 旬阳县| 太仓市| 永和县| 新巴尔虎左旗| 宝清县| 林甸县| 玉田县| 旺苍县| 固始县| 嘉义市| 阿克苏市| 增城市| 泰州市| 河北省| 枣阳市| 澳门| 潍坊市| 都兰县|