Redis學習筆記(十四)Sentinel(哨兵)(上)

最近談到Redis就會聽到哨兵模式,工做期間同事也分享過關於哨兵模式的知識,但因爲工做忙(給本身找個藉口)沒有沒認真看,如今惡補下,老樣子仍是分上篇應用,下篇看實現過程,下面咱們來看下哨兵究竟是啥?redis

哨兵模式(Sentinel)是Redis的高可用解決方案。由一個或多個Sentinel實例組成的Sentinel系統,能夠監控任意多個主服務器,以及這些主服務器下的全部從服務器,當某個主服務器下線時,自動將這個主服務器下的某個從服務器升級爲新的主服務器,代替下線的主服務器繼續處理命令。另外Sentinel系統還會繼續監視已下線的主服務器,當主服務器恢復時,它將被降級成該主服務器的從服務器。windows

在看哨兵模式的實現過程以前,咱們先看一下哨兵的用法服務器

一、咱們將redis.windows.conf配置文件拷貝3份出來,改下名字便於識別:6379.conf,6380,conf,6381.conf。(這裏咱們模擬使用經典的三節點搭建)app

6379.conf咱們使用默認配置的6379端口,分別改下 6380,conf與6381.conf的端口號spa

 

 

 

 上一章咱們使用slaveof <masterip> <masterport>命令設置從節點,如今咱們修改6380.conf與6391.conf,將複製命令配置在文件中,將6379做爲主節點:3d

 

 

二、下面咱們執行命令,啓動三個節點:code

redis-server.exe 6379.conf server

redis-server.exe 6380.conf blog

redis-server.exe 6381.confip

 

 

 

 

 

 

 

 

 好了,如今三個節點都已經啓動,而且從控臺上看出,從節點已經在複製主節點的數據。

三、分別建立三個Sentinel配置文件:sentinel6379.conf ,sentinel6380.conf ,sentinel3381.conf

內容分別是:

 sentinel6379.conf

port 26379
#當前Sentinel服務運行的端口
port 26379  
# 哨兵監聽的主服務器
sentinel monitor mymaster 127.0.0.1 6379 2
#若是在3秒內無相應,則認爲主站點宕機
sentinel down-after-milliseconds mymaster 3000
#若是10秒後,mysater仍沒啓動過來,則啓動failover 
sentinel failover-timeout mymaster 10000  
#執行故障轉移時,最多有一臺對新的主服務器進行同
sentinel parallel-syncs mymaster 1

sentinel6380.conf

#當前Sentinel服務運行的端口
port 26380
# 哨兵監聽的主服務器
sentinel monitor mymaster 127.0.0.1 6379 2
#若是在3秒內無相應,則認爲主站點宕機
sentinel down-after-milliseconds mymaster 3000
#若是10秒後,mysater仍沒啓動過來,則啓動failover 
sentinel failover-timeout mymaster 10000  
#執行故障轉移時,最多有一臺對新的主服務器進行同
sentinel parallel-syncs mymaster 1

sentinel3381.conf

port 26381
# 哨兵監聽的主服務器
sentinel monitor mymaster 127.0.0.1 6379 2
#若是在3秒內無相應,則認爲主站點宕機
sentinel down-after-milliseconds mymaster 3000
#若是10秒後,mysater仍沒啓動過來,則啓動failover 
sentinel failover-timeout mymaster 10000  
#執行故障轉移時,最多有一臺對新的主服務器進行同步
sentinel parallel-syncs mymaster 1

三、執行命令啓動:

redis-server.exe sentinel6379.conf --sentinel

 

 

 redis-server.exe sentinel6380.conf --sentinel

 

 

 redis-server.exe sentinel6381.conf --sentinel

 

 

 四、校驗:

先看下主服務器6379的信息:

 

 

 切換到6380與6381咱們看下:

 

 

 

 

 

 如今咱們模擬主服務器6379宕機(關閉掉6379的服務端),觀察6380與6381的反應。

 

 

 

 

 

 從以上信息來看,6381被選舉爲主服務器,那麼如今咱們分別看下6380與6381的信息:

 

 

 此時監聽信息爲:

 

 

 下一步咱們恢復6379看看會發生什麼:

 

 

 

 如今看下監聽信息:

 

此時發現6379被設置爲從服務器。

 

 

如今咱們redis-cli 鏈接到6379看下:

 

 

OK完工,暫時只模擬這一種宕機狀況。

 

篇幅有些長,不知道有多少同窗能看到這裏。

 


 

 

天天學一點,總會有收穫。

 

下一步咱們看下Redis的Sentinel(哨兵)的實現過程

 

相關文章
相關標籤/搜索