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

Redis Sentinel的基本搭建

 更新時(shí)間:2021年03月30日 11:54:58   作者:AsiaYe  
這篇文章主要介紹了Redis Sentinel的使用,幫助大家更好的理解和學(xué)習(xí)使用Redis數(shù)據(jù)庫(kù),感興趣的朋友可以了解下

Redis Sentinel的概念

   我們知道Redis主從模式下,一旦主節(jié)點(diǎn)由于故障不能提供服務(wù),需要人工將從節(jié)點(diǎn)晉升為主節(jié)點(diǎn),同時(shí)還要通知應(yīng)用方更新主節(jié)點(diǎn)的地址。然后在很多應(yīng)用場(chǎng)景下這種故障處理的方式是無(wú)法接受的,應(yīng)用程序需要實(shí)時(shí)感知當(dāng)前的可用節(jié)點(diǎn)。為了解決這個(gè)問(wèn)題,Redis Sentinel應(yīng)運(yùn)而生,也稱(chēng)之為"哨兵"。

   介紹sentinel之前,先來(lái)了解幾個(gè)redis的概念,

主節(jié)點(diǎn)master:Redis進(jìn)程,主服務(wù)

從節(jié)點(diǎn)slave:redis進(jìn)程,從服務(wù)

Redis數(shù)據(jù)節(jié)點(diǎn):主節(jié)點(diǎn)和從節(jié)點(diǎn)

Sentinel節(jié)點(diǎn):監(jiān)控Redis數(shù)據(jù)節(jié)點(diǎn),獨(dú)立的sentinel進(jìn)程

Sentinel節(jié)點(diǎn)集合:若干Sentinel節(jié)點(diǎn)的抽象組合,若干sentinel節(jié)點(diǎn)進(jìn)程

Redis Sentinel:Redis高可用實(shí)現(xiàn)方案,sentinel節(jié)點(diǎn)集合和redis數(shù)據(jù)節(jié)點(diǎn)進(jìn)程

01 主從復(fù)制問(wèn)題

前面的文章中我們講述了主從復(fù)制,可以將從節(jié)點(diǎn)作為主節(jié)點(diǎn)的災(zāi)備節(jié)點(diǎn),今天我們來(lái)看主從復(fù)制帶來(lái)的問(wèn)題:

1、一旦主節(jié)點(diǎn)發(fā)生故障,從節(jié)點(diǎn)晉升為主節(jié)點(diǎn)的過(guò)程和應(yīng)用調(diào)整新主節(jié)點(diǎn)的過(guò)程,都需要人為干預(yù)

2、主節(jié)點(diǎn)的寫(xiě)能力容易受到單機(jī)的限制

3、主節(jié)點(diǎn)的存儲(chǔ)能力容易受到單機(jī)的限制

   一種常見(jiàn)的方法是使用腳本來(lái)觸發(fā)主從節(jié)點(diǎn)的角色切換,例如在一個(gè)一主兩從的結(jié)構(gòu)中,假設(shè)主節(jié)點(diǎn)master,從節(jié)點(diǎn)slave1,slave2,我們來(lái)看故障發(fā)生時(shí)架構(gòu)的狀態(tài):

1、主節(jié)點(diǎn)master故障,客戶(hù)端連接失敗,兩個(gè)從節(jié)點(diǎn)復(fù)制失敗

2、選擇一個(gè)主節(jié)點(diǎn)slave1,對(duì)其執(zhí)行slave of no one命令使其成為主節(jié)點(diǎn)master2

3、更新應(yīng)用程序連接的節(jié)點(diǎn)為slave1的IP地址

4、slave2以slave1為新的主節(jié)點(diǎn),復(fù)制slave1上的命令

5、待原來(lái)的master恢復(fù)之后,讓它成為slave1的從節(jié)點(diǎn)。

上述過(guò)程可以做成自動(dòng)化的過(guò)程,但是需要考慮三點(diǎn):a、要確保判斷節(jié)點(diǎn)不可達(dá)的機(jī)制健全,否則容易出現(xiàn)誤判斷情況

b、如果有多個(gè)從節(jié)點(diǎn),如果保證只有一個(gè)從節(jié)點(diǎn)被晉升為主節(jié)點(diǎn)是個(gè)關(guān)鍵的問(wèn)題

c、通知客戶(hù)端新的主節(jié)點(diǎn)的機(jī)制是否足夠健壯

02 Redis Sentinel的高可用機(jī)制

   Sentinel能夠自動(dòng)完成故障發(fā)現(xiàn)和故障轉(zhuǎn)移,并及時(shí)通知應(yīng)用方。這是它的核心價(jià)值所在。

   Redis Sentinel是一個(gè)分布式架構(gòu),其中包含若干個(gè)Sentinel和若干個(gè)Redis數(shù)據(jù)節(jié)點(diǎn),每個(gè)Sentinel節(jié)點(diǎn)會(huì)對(duì)數(shù)據(jù)節(jié)點(diǎn)和其余Sentinel節(jié)點(diǎn)進(jìn)行監(jiān)控,當(dāng)它發(fā)現(xiàn)節(jié)點(diǎn)不可達(dá)時(shí),會(huì)對(duì)節(jié)點(diǎn)做下線表示。如果被標(biāo)識(shí)的是主節(jié)點(diǎn),它還會(huì)和其他的sentinel進(jìn)行協(xié)商,當(dāng)大多數(shù)sentinel節(jié)點(diǎn)都認(rèn)為主節(jié)點(diǎn)不可達(dá)時(shí),他們會(huì)選舉出來(lái)一個(gè)sentinel節(jié)點(diǎn)來(lái)實(shí)現(xiàn)故障自動(dòng)轉(zhuǎn)移,同時(shí)會(huì)將這個(gè)變化通知給Redis應(yīng)用方,整個(gè)過(guò)程是自動(dòng)的,不需要人工介入。

Redis Sentinel與Redis主從復(fù)制模式只是多了若干個(gè)sentinel節(jié)點(diǎn),并沒(méi)有對(duì)redis節(jié)點(diǎn)做特殊處理,這是很多redis開(kāi)發(fā)和運(yùn)維人員容易混淆的地方。

二者架構(gòu)圖如下:

在整個(gè)主服務(wù)故障到重新選擇主服務(wù)的過(guò)程中,sentinel主要干如下幾件事情:

1、監(jiān)控,sentinel節(jié)點(diǎn)會(huì)定期檢測(cè)redis數(shù)據(jù)節(jié)點(diǎn),其余sentinel節(jié)點(diǎn)是否可達(dá)

2、通知,sentinel節(jié)點(diǎn)會(huì)將故障轉(zhuǎn)移的結(jié)果通知給應(yīng)用方。

3、主節(jié)點(diǎn)故障轉(zhuǎn)移:實(shí)現(xiàn)從節(jié)點(diǎn)晉升為主節(jié)點(diǎn)并維護(hù)后續(xù)正確的主從關(guān)系

4、配置提供者:在redis sentinel結(jié)構(gòu)中,客戶(hù)端在初始化的時(shí)候連接的是sentinel節(jié)點(diǎn)集合,從中獲取主節(jié)點(diǎn)信息

   上面的架構(gòu)圖中不難發(fā)現(xiàn)sentinel也是多個(gè)的,這樣的好處有兩個(gè):

1、可以保證sentinel的健壯性,一個(gè)sentinel掛了,不影響整個(gè)集群的功能。

2、對(duì)于節(jié)點(diǎn)的故障判斷是多個(gè)sentinel同時(shí)判斷出來(lái)的,有效的防止了誤判

    sentinel節(jié)點(diǎn)本身其實(shí)就是獨(dú)立的redis節(jié)點(diǎn),只不過(guò)它們不存處數(shù)據(jù),只支持部分命令。

    接下來(lái),我們來(lái)看sentinel的部署和配置文件內(nèi)容。

03 sentinel部署

    sentinel部署之前,需要先有master和兩個(gè)slave的一主兩從架構(gòu):

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=169,lag=1
slave1:ip=127.0.0.1,port=6381,state=online,offset=169,lag=1
master_repl_offset:183
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:182

  sentinel的部署配置文件:

[root@VM_48_10_centos redis]# cat redis-sentinel-26379.conf 
port 26379
daemonize yes
logfile "26379.log"
dir "/usr/local/redis-3.0.7"
sentinel monitor mymaster 127.0.0.1 6379 2

  其中,sentinel monitor mymaster代表sentinel要監(jiān)控主節(jié)點(diǎn)6379,2代表判斷主節(jié)點(diǎn)失敗至少需要2個(gè)sentinel節(jié)點(diǎn)同意。

  其余兩個(gè)sentinel的配置文件和這個(gè)大同小異,只需要修改對(duì)應(yīng)端口和日志文件即可。sentinel啟動(dòng)命令如下:

[root@VM_48_10_centos redis]# redis-sentinel redis-sentinel-26379.conf &
[1] 7311
[root@VM_48_10_centos redis]# redis-sentinel redis-sentinel-26380.conf &
[1] 7366
[root@VM_48_10_centos redis]# redis-sentinel redis-sentinel-26381.conf &
[2] 7380
[root@VM_48_10_centos redis]# 
[root@VM_48_10_centos redis]# ps -ef|grep sentinel
root      7312     1  0 22:51 ?        00:00:00 redis-sentinel *:26379 [sentinel]
root      7367     1  0 22:52 ?        00:00:00 redis-sentinel *:26380 [sentinel]
root      7381     1  0 22:52 ?        00:00:00 redis-sentinel *:26381 [sentinel]
root      7405  5850  0 22:52 pts/7    00:00:00 grep --color=auto sentinel

此時(shí),重新查看26379這個(gè)sentinel的配置文件,會(huì)發(fā)現(xiàn)里面多了一些內(nèi)容:

[root@VM_48_10_centos redis]# cat redis-sentinel-26379.conf 
port 26379
daemonize yes
logfile "26379.log"
dir "/usr/local/redis-3.0.7"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 127.0.0.1 6380
# Generated by CONFIG REWRITE
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-sentinel mymaster 127.0.0.1 26381 0a2c77616ef88282fa12ef7c8aca142a2473cd5a
sentinel known-sentinel mymaster 127.0.0.1 26380 3ad6460bf5f4b01f277fdce3aa423d596993eec5
sentinel current-epoch 0

   可以發(fā)現(xiàn),sentinel之間已經(jīng)進(jìn)行了交互,并寫(xiě)入了配置文件中一些已經(jīng)獲取到的內(nèi)容。

使用命令info sentinel查看當(dāng)前sentinel集群的信息:

[root@VM_48_10_centos redis]# redis-cli -h 127.0.0.1 -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

以上就是Redis Sentinel的使用的詳細(xì)內(nèi)容,更多關(guān)于Redis Sentinel的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Redis高并發(fā)分布鎖的示例

    Redis高并發(fā)分布鎖的示例

    在分布式系統(tǒng)中,實(shí)現(xiàn)分布式鎖是一項(xiàng)常見(jiàn)的需求,本文主要介紹了Redis高并發(fā)分布鎖的示例 ,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 淺談我是如何用redis做實(shí)時(shí)訂閱推送的

    淺談我是如何用redis做實(shí)時(shí)訂閱推送的

    這篇文章主要介紹了淺談我是如何用redis做實(shí)時(shí)訂閱推送的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 內(nèi)存型數(shù)據(jù)庫(kù)Redis持久化小結(jié)

    內(nèi)存型數(shù)據(jù)庫(kù)Redis持久化小結(jié)

    redis是一個(gè)支持持久化的內(nèi)存數(shù)據(jù)庫(kù),也就是說(shuō)redis需要經(jīng)常將內(nèi)存中的數(shù)據(jù)同步到磁盤(pán)來(lái)保證持久化.redis支持四種持久化方式,一是 Snapshotting(快照)也是默認(rèn)方式,二是Append-only file(縮寫(xiě)aof)的方式,三是虛擬內(nèi)存方式,四是diskstore方式.今天我們總結(jié)下前2種。
    2017-09-09
  • redis.config配置文件

    redis.config配置文件

    在使用Redis時(shí),我們通常需要對(duì)Redis進(jìn)行一些配置,以確保其能夠正常運(yùn)行并滿(mǎn)足我們的需求,本文主要介紹了redis.config配置文件,感興趣的可以了解一下
    2023-11-11
  • Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí)

    Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí)

    這篇文章主要為大家介紹了Redis數(shù)據(jù)類(lèi)型之散列類(lèi)型hash命令學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用操作命令

    Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用操作命令

    這篇文章主要為大家介紹了Redis基本數(shù)據(jù)類(lèi)型哈希Hash常用操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式鎖的方法

    Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式鎖的方法

    這篇文章主要介紹了Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式鎖的方法,Redis是一個(gè)高性能的主存式數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2015-06-06
  • 解決Redis啟動(dòng)警告問(wèn)題

    解決Redis啟動(dòng)警告問(wèn)題

    這篇文章介紹了解決Redis啟動(dòng)警告問(wèn)題的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Windows下Redis的安裝使用教程

    Windows下Redis的安裝使用教程

    這篇文章主要以圖文結(jié)合的方式為大家詳細(xì)介紹了Windows下Redis的安裝使用,Redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)key/value存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用,對(duì)Redis感興趣的小伙伴們可以參考一下
    2016-05-05
  • redis實(shí)現(xiàn)刪除list中特定索引的值

    redis實(shí)現(xiàn)刪除list中特定索引的值

    這篇文章主要介紹了redis實(shí)現(xiàn)刪除list中特定索引的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論

远安县| 如皋市| 奉节县| 新闻| 惠东县| 沅江市| 贵溪市| 桓台县| 鞍山市| 连南| 林西县| 古浪县| 乡城县| 农安县| 竹北市| 隆安县| 洮南市| 洪雅县| 肥西县| 白河县| 都昌县| 宝坻区| 栾川县| 瑞丽市| 诏安县| 基隆市| 抚远县| 咸丰县| 平乡县| 沐川县| 互助| 开原市| 临颍县| 双桥区| 阿合奇县| 益阳市| 三穗县| 巴楚县| 南涧| 连南| 中超|