Redis學習(十三) 使用哨兵自動管理主從資料庫

2021-10-08 22:51:23 字數 1032 閱讀 4181

顧名思義,哨兵的作用就是監控redis系統的執行狀況。它的功能主要包括以下兩個:

配置檔案名稱:sentinel.conf,內容如下:

sentinel monitor mymaster 127.0.0.1 6379 1
啟動哨兵命令:

redis-sentinel /path/to/sentinel.conf
哨兵啟動後,會與要監控的主資料庫建立兩條連線:

用來訂閱該主資料庫的_sentinel_:hello頻道,來獲取同樣監控了此資料庫的其他哨兵資訊。

向主從資料庫傳送工作命令(第一條連線是訂閱,所以無法進行其他操作,需要重新建立一條)

向主資料傳送info命令,第一次傳送時會獲取到主資料庫下的從資料庫資訊,然後哨兵會跟從資料庫用相同的方式建立兩條連線;

每10秒向主從資料庫傳送info命令:重新整理紀錄的主從資料庫資訊,發現新節點等;

每1秒(可以配置:down-after-milliseconds)向主從資料庫傳送ping命令,來判斷主從資料庫是否正常。

主觀下線和客觀下線

領頭哨兵選舉(乙個哨兵一輪只有一次投票權)

發現主資料庫客觀下線的哨兵a,會向其他哨兵傳送命令,讓對方選自己為領頭哨兵;

如果目標哨兵在這一輪沒有選過別的人,就會同意a哨兵的請求,a哨兵票數+1;

只要a哨兵獲得的票數超過半數,就會成為領頭哨兵

特殊情況:一輪投票中有好幾個哨兵參加選舉,但是最後票數都沒超過半數,那麼這幾個哨兵會隨機等待乙個事件,重新進行上述步驟,直到領頭哨兵被選出來。

哨兵挑選從資料庫公升級為主資料庫需要遵循以下原則:

Redis學習筆記 哨兵機制 哨兵集群建立過程

4.筆記圖 5.redis哨兵集群建立過程 6.redis 哨兵集群組成原理 7.redis哨兵選leader 前面介紹了redis主從模型如何在不影響正常業務的情況下實現資料一致,若從庫發生故障,客戶端可以請求其他的從庫 或主庫 讀取資料,若主庫發生故障,客戶端就無法寫入了,而且還會影響從庫的資料...

go實踐十三 使用redis

使用 go run testcolly.go 執行該檔案即可 redis set 10秒生存時間 err client.setnx test value 10 time.second result if err nil redis get value client.get test if err n...

前端學習(十三)CSS margin的使用

margin是設定物件外邊距外延邊距離。margin的值有三種情況,可以為正整數和負整數並加單位如px畫素 margin left 20px 可以為auto自動屬性 margin left auto 自動 可以為百分比 值 margin left 3 單獨設定四邊間距屬性單詞 margin left...