第十章:Redis Sentinel 哨兵機制

Redis Sentinel為Redis提供高可用性。實際上办铡,這意味著使用Sentinel可以創(chuàng)建一個Redis部署辞做,在沒有人為干預(yù)的情況下抵抗某些類型的故障。

1. 故障轉(zhuǎn)移步驟

  1. 多個sentinel發(fā)現(xiàn)并缺人master有問題寡具。
  2. 選舉出一個sentinel作為領(lǐng)導(dǎo)秤茅。
  3. 選出一個slave作為master
  4. 通知其余slave成為新的master的slave
  5. 通知客戶端朱從變化
  6. 等待老的master復(fù)活成為信master的slave

2. 為什么要用哨兵

Redis Sentinel是一個分布式系統(tǒng):

Sentinel本身被設(shè)計成運行在多個Sentinel進程合作的配置中。具有多個Sentinel進程協(xié)作的優(yōu)勢如下:

  1. 當(dāng)多個Sentinels同意給定的主控器不再可用時童叠,執(zhí)行故障檢測框喳。這降低了誤報的可能性。
    即使不是所有的Sentinel進程都在工作拯钻,Sentinel也能正常工作帖努,從而使系統(tǒng)對故障有效撰豺。畢竟粪般,擁有一個本身就是單點故障的故障切換系統(tǒng)是沒有意義的。
  2. Sentinel污桦,Redis實例(主服務(wù)器和從服務(wù)器)以及連接到Sentinel和Redis的客戶端的總和也是具有特定屬性的更大的分布式系統(tǒng)亩歹。在這篇文檔中,概念將從為了理解Sentinel的基本屬性所需的基本信息,到更復(fù)雜的信息(這些是可選的)小作,逐步引入亭姥,以便理解Sentinel的工作原理。

3. 快速開始

3.1 配置哨兵

分別配置sentinel.confsentinel-26380.conf

port 26379
protected-mode no
sentinel monitor mymaster 47.xx.xxx.xxx 6379 2    # 127.0.0.1 一定要改成服務(wù)器 ip
sentinel auth-pass mymaster root++...   #如果mamaster節(jié)點有密碼顾稀,則需要設(shè)置這項
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1


port 26380
sentinel monitor myslave 47.xx.xxx.xxx 6380 4  
sentinel auth-pass myslave root++...   #如果mamaster節(jié)點有密碼达罗,則需要設(shè)置這項
sentinel down-after-milliseconds myslave 10000
sentinel failover-timeout myslave 180000
sentinel parallel-syncs myslave 5

3.2 運行哨兵

兩種方法:

  1. redis-sentinel /path/to/sentinel.conf
  2. redis-server /path/to/sentinel.conf --sentinel

3.3 測試

mymaster啟動
[root@FantJ redis-4.0.9]# redis-sentinel sentinel.conf &
[1] 17859
[root@FantJ redis-4.0.9]# 17859:X 07 Sep 16:44:10.344 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
17859:X 07 Sep 16:44:10.344 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=17859, just started
17859:X 07 Sep 16:44:10.344 # Configuration loaded
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 4.0.9 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 17859
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

17859:X 07 Sep 16:44:10.346 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
17859:X 07 Sep 16:44:10.346 # Sentinel ID is e61d1d9c3a7441d2376cb98399fa9dd479076eef
17859:X 07 Sep 16:44:10.346 # +monitor master mymaster xxx.xx.xx.xx  6379 quorum 2
myslave啟動
[root@FantJ sentinel]# redis-sentinel sentinel-26380.conf &
[2] 17873
[root@FantJ sentinel]# 17873:X 07 Sep 16:46:11.401 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
17873:X 07 Sep 16:46:11.401 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=17873, just started
17873:X 07 Sep 16:46:11.401 # Configuration loaded
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 4.0.9 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 17873
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

17873:X 07 Sep 16:46:11.403 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
17873:X 07 Sep 16:46:11.403 # Sentinel ID is 0f375fb9f45af9c6a5402e88cb9296b24da6f067
17873:X 07 Sep 16:46:11.403 # +monitor master myslave xxxxx 6380 quorum 4
查看26379的sentinel信息:
[root@FantJ sentinel]# redis-cli -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=sdown,address=47.xx.xx.xxx:6379,slaves=0,sentinels=1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市静秆,隨后出現(xiàn)的幾起案子粮揉,更是在濱河造成了極大的恐慌,老刑警劉巖抚笔,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扶认,死亡現(xiàn)場離奇詭異,居然都是意外死亡殊橙,警方通過查閱死者的電腦和手機辐宾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膨蛮,“玉大人叠纹,你說我怎么就攤上這事〕ǜ穑” “怎么了吊洼?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長制肮。 經(jīng)常有香客問我冒窍,道長,這世上最難降的妖魔是什么豺鼻? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任综液,我火速辦了婚禮,結(jié)果婚禮上儒飒,老公的妹妹穿的比我還像新娘谬莹。我一直安慰自己,他們只是感情好桩了,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布附帽。 她就那樣靜靜地躺著,像睡著了一般井誉。 火紅的嫁衣襯著肌膚如雪蕉扮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天颗圣,我揣著相機與錄音喳钟,去河邊找鬼屁使。 笑死,一個胖子當(dāng)著我的面吹牛奔则,可吹牛的內(nèi)容都是我干的蛮寂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼易茬,長吁一口氣:“原來是場噩夢啊……” “哼酬蹋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抽莱,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤除嘹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岸蜗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尉咕,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年璃岳,在試婚紗的時候發(fā)現(xiàn)自己被綠了年缎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡铃慷,死狀恐怖单芜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情犁柜,我是刑警寧澤洲鸠,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站馋缅,受9級特大地震影響扒腕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萤悴,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一瘾腰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧覆履,春花似錦蹋盆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伟众,卻和暖如春析藕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赂鲤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工噪径, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人数初。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓找爱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泡孩。 傳聞我的和親對象是個殘疾皇子车摄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容