Mac下搭建Redis5-主從+哨兵

哨兵機制
有了主從帘靡,那我們需要對其進行監(jiān)控知给,Sentinel會不斷地檢查你的主服務器和從服務器是否運作正常。某個節(jié)點故障后,Sentinel 會開始一次自動故障遷移操作涩赢, 它會將失效主服務器的其中一個從服務器升級為新的主服務器戈次, 并讓失效主服務器的其他從服務器改為復制新的主服務器; 當客戶端試圖連接失效的主服務器時筒扒, 集群也會向客戶端返回新主服務器的地址怯邪, 使得集群可以使用新主服務器代替失效服務器。Redis Sentinel 是一個分布式系統(tǒng)花墩, 你可以在一個架構(gòu)中運行多個 Sentinel 進程(Progress)悬秉, 這些進程使用流言協(xié)議(Gossip Protocols)來接收關于主服務器是否下線的信息, 并使用投票協(xié)議(Agreement Protocols)來決定是否執(zhí)行自動故障遷移冰蘑, 以及選擇哪個從服務器作為新的主服務器和泌。雖然 Redis Sentinel 釋出為一個單獨的可執(zhí)行文件 redis-sentinel , 但實際上它只是一個運行在特殊模式下的 Redis 服務器祠肥。

本文件的配置文件及腳本在gitee上可查看 https://gitee.com/akonvm/redis-demo/tree/master/masterslave

sentinel是在主從模式上建立的武氓,所有sentinel服務都監(jiān)聽master,它會自動檢測到slave以及其它sentinel仇箱。所以主從搭建過程使用前一篇(Mac下搭建Redis5-主從模式)搭建好的服務即可县恕,下面介紹在該主從架構(gòu)上設置sentinel

1. 高可用架構(gòu)圖

圖中實線標識需要在配置文件中指定的關系,虛線是自動檢測到的關系


高可用架構(gòu)圖

2. sentinel配置文件

redis解壓目錄下提供了sentinel的配置文件模塊sentinel.conf剂桥,將他拷貝過來修改即可

$ cd /Users/ankang/develop/redis-demo/masterslave/conf
$ cp /Users/ankang/develop/redis-5.0.7/sentinel.conf redis-sentinel-26379.conf

redis-sentinel-26379.conf配置如下

# 關閉保護模式
protected-mode no
# 設定端口
port 26379
# 修改為守護模式弱睦,使之可以后臺運行
daemonize yes
# 設置進程文件
pidfile "/var/run/redis-sentinel-26379.pid"
# 設置進日志文件
logfile "/Users/ankang/develop/redis-demo/masterslave/logs/redis-sentinel-26379.log"
# 哨兵sentinel監(jiān)控的redis主節(jié)點的 
## ip:主機ip地址
## port:哨兵端口號
## master-name:可以自己命名的主節(jié)點名字(只能由字母A-z、數(shù)字0-9 渊额、這三個字符".-_"組成。)
## quorum:當這些quorum個數(shù)sentinel哨兵認為master主節(jié)點失聯(lián) 那么這時 客觀上認為主節(jié)點失聯(lián)了  
# sentinel monitor <master-name> <ip> <redis-port> <quorum>  
sentinel monitor mymaster 127.0.0.1 6379 2
# 當在Redis實例中開啟了requirepass <foobared>垒拢,所有連接Redis實例的客戶端都要提供密碼旬迹。
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster admin123
# master或slave多長時間(默認30秒)不能使用后標記為s_down狀態(tài)。
sentinel down-after-milliseconds mymaster 5000
# 若sentinel在該配置值內(nèi)未能完成failover操作(即故障時master/slave自動切換)求类,則認為本次failover失敗奔垦。
sentinel failover-timeout mymaster 10000
# myid在sentinel啟動時會自動生成.多哨兵拷貝配置文件時不要拷貝該字段,需要刪掉尸疆,否則故障切換不生效
# sentinel myid xxxxxxxxxxxxxx

redis-sentinel-26380.conf椿猎、redis-sentinel-26381.confredis-sentinel-26379.conf基本一樣,只需要修改文件中的port寿弱、pidfile犯眠、logfile對應的端口

3. 添加啟動腳本

/Users/ankang/develop/redis-demo/masterslave/目錄下創(chuàng)建腳本redis-sentinel-26379.shredis-sentinel-26380.sh症革、redis-sentinel-26381.sh筐咧。redis-sentinel-26379.sh內(nèi)容如下

#!/bin/sh
set -e

REDISPORT=26379
INSTALL_DIR="/Users/ankang/develop/redis-5.0.7"
DEMO_DIR="/Users/ankang/develop/redis-demo/masterslave"
EXEC="${INSTALL_DIR}/src/redis-sentinel"
CONF="${DEMO_DIR}/conf/redis-sentinel-${REDISPORT}.conf"

case "$1" in
    start)
        echo "Starting Redis sentinel..."
        $EXEC $CONF
        ;;
    stop)
        pid=`ps aux | grep redis-sentinel | grep ${REDISPORT} | head -n 1 | awk '{print $2}'`
        if [ -n "$pid" ]
        then
                echo "Stopping Redis sentinel[${pid}]..."
                kill ${pid}
        else
                echo "Redis sentinel stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

redis-sentinel-26380.shredis-sentinel-26381.sh可以拷貝redis-sentinel-26379.sh,對應修改文件中的REDISPORT變量的端口號即可

4. 啟動與關閉

按下面命令執(zhí)行

$ sh redis-sentinel-26379.sh start
$ sh redis-sentinel-26380.sh start
$ sh redis-sentinel-26381.sh start

注意:sentinel啟動后,對應的配置文件會被自動修改

5. 故障遷移

這時關閉master服務量蕊,過一會其他的slave服務會自動切換為master铺罢,通過info可查看。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末残炮,一起剝皮案震驚了整個濱河市韭赘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌势就,老刑警劉巖泉瞻,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛋勺,居然都是意外死亡瓦灶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門抱完,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贼陶,“玉大人,你說我怎么就攤上這事巧娱〉镎” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵禁添,是天一觀的道長撮胧。 經(jīng)常有香客問我,道長老翘,這世上最難降的妖魔是什么芹啥? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮铺峭,結(jié)果婚禮上墓怀,老公的妹妹穿的比我還像新娘。我一直安慰自己卫键,他們只是感情好傀履,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著莉炉,像睡著了一般钓账。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上絮宁,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天梆暮,我揣著相機與錄音,去河邊找鬼绍昂。 笑死惕蹄,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卖陵,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼遭顶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泪蔫?” 一聲冷哼從身側(cè)響起棒旗,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撩荣,沒想到半個月后铣揉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡餐曹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年逛拱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片台猴。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡朽合,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饱狂,到底是詐尸還是另有隱情曹步,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布休讳,位于F島的核電站讲婚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏俊柔。R本人自食惡果不足惜筹麸,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雏婶。 院中可真熱鬧竹捉,春花似錦、人聲如沸尚骄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倔丈。三九已至,卻和暖如春状蜗,著一層夾襖步出監(jiān)牢的瞬間需五,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工轧坎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宏邮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像蜜氨,于是被迫代替她去往敵國和親械筛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355