新聞中心
實現(xiàn)重新選舉,是一種高可用的技術。重新選舉能夠保證系統(tǒng)可用,同時在集群出現(xiàn)故障時可以繼續(xù)服務,確保服務的正常運行。Redis能夠實現(xiàn)重新選舉,下面介紹實現(xiàn)重新選舉的方法:

創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武義企業(yè)提供專業(yè)的成都網(wǎng)站建設、成都網(wǎng)站設計,武義網(wǎng)站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
建立Redis Master-Slave集群。Master通過AOF持久化方式,向Slave同步持久化數(shù)據(jù),保證Slave的數(shù)據(jù)與Master狀態(tài)的一致。
然后,通過Redis提供的Master-Slave切換功能及客戶端實現(xiàn)監(jiān)視器,在Master出現(xiàn)故障時,監(jiān)視器會監(jiān)聽到 Master 崩潰信息,在 Slaves 中找出最新的一條持久化數(shù)據(jù),并從中 awgetLeader 選舉出新的 Leader 。
# Master watcher
redis-cli -a ${password} --cluster check ${masterIP}:${masterPort}
# Client watcher
while true
do
Master=$(redis-cli -a ${password} -h ${masterIP} -p ${masterPort} info replication | grep "role" | cut -d ',' -f 1|cut -d ':' -f 2)
if [[ $Master != "master" ]]; then
# elect leader
./awgetLeader.sh
fi
sleep 2
done
接著,新的 Leader 會與其它 Slaves 進行通信,確定是否可以將它們轉換為 Master ,向他們發(fā)出轉換請求。
如果 Slaves 返回了同意,Leader 就會通知客戶端,將原來 Master 的信息替換成新的Master,完成了重新選舉。
Redis重新選舉的實現(xiàn),保證了集群的正常運行,同時還可以將重新選舉的功能拓展到遞增應用。下面介紹一個使用Redis遞增應用的示例:
在使用Redis實現(xiàn)遞增應用的例子中,我們可以使用Redis的INCR命令,每次遞增指定的key的值;同時,我們還可以使用Redis的 WATCH 功能,監(jiān)視 key 的變化,在監(jiān)視 key 發(fā)生變化時,重新進行遞增操作,達到實現(xiàn)遞增應用所需要的效果。以下是一個Redis實現(xiàn)遞增應用的示例:
# increment key once
WATCH "key"
val = INCR "key"
# restart if WATCHed val has changed
if val == 0:
# basic code to start a new server
以上就是一個簡單的Redis實現(xiàn)重新選舉和拓展用于遞增應用的示例。Redis通過MASTER-SLAVE集群和WATCH功能,讓重新選舉成為可能,同時還提高了系統(tǒng)的可用性和安全性。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務、應用軟件開發(fā)、網(wǎng)站建設推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)成都老牌IDC服務商,專注四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質idc數(shù)據(jù)中心機房租用、服務器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
文章名稱:Redis實現(xiàn)重新選舉,拓展遞增應用(redis重新選舉遞增)
分享網(wǎng)址:http://fisionsoft.com.cn/article/cohghse.html


咨詢
建站咨詢
