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

動(dòng)態(tài)添加Redis密碼認(rèn)證的方法

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

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

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

1.定制jedis

對(duì)redis返回的錯(cuò)誤的處理,做兩處修改:

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

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

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

2.在項(xiàng)目代碼中使用定制的jedis

修改maven配置。將原來(lái)的jedis依賴注釋掉,添加對(duì)本地的定制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所在的相對(duì)路徑 -->
</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>
-->

因?yàn)榘讯ㄖ苆edis通過(guò)本地jar包的形式提供,maven不會(huì)自動(dòng)加載jedis的依賴,所以需額外添加對(duì)commons-pool2的依賴。

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

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

替換前:

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

替換后:

try {  
 // ... 
} catch (JedisException e) {  
 // ...  
}  
finally {  
 jedis.close();
}

4.將使用定制jedis的項(xiàng)目代碼上線

此時(shí)redis尚未添加密碼,但定制jedis忽略了“ERR Client sent AUTH, but no password is set”,所以線上運(yùn)行正常。

5.給redis server添加密碼認(rèn)證

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

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

復(fù)制代碼 代碼如下:

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

如果使用了shardedJedis,請(qǐng)逐個(gè)分片進(jìn)行操作,最小化對(duì)業(yè)務(wù)服務(wù)的影響。

6.更換jedis為官方版本

定制jedis就是為了動(dòng)態(tài)添加密碼認(rèn)證。添加完畢后,換回官方j(luò)edis,方便今后升級(jí)。

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    redis?設(shè)置生存和過(guò)期時(shí)間的原理分析

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

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

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

    嵌入式Redis服務(wù)器在Spring Boot測(cè)試中的使用教程

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

    linux下安裝redis圖文詳細(xì)步驟

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

    Redis實(shí)現(xiàn)會(huì)話管理和token認(rèn)證的示例代碼

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

    Redis BloomFilter實(shí)例講解

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

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

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

    redis中RDB(Redis Data Base)的機(jī)制

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

    win 7 安裝redis服務(wù)【筆記】

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

最新評(píng)論

抚远县| 抚松县| 苏州市| 张掖市| 双桥区| 永修县| 徐汇区| 瑞昌市| 乌海市| 肇州县| 龙岩市| 广州市| 惠来县| 秦皇岛市| 孝感市| 大新县| 象州县| 佛冈县| 南华县| 安新县| 桓仁| 丹阳市| 阜平县| 广安市| 理塘县| 江北区| 开阳县| 鹤庆县| 黄冈市| 津南区| 黄梅县| 兰西县| 黄陵县| 株洲市| 承德县| 富宁县| 广饶县| 天津市| 湘乡市| 西充县| 新巴尔虎左旗|