Linux下redis集群搭建(哨兵)

一诉稍、Redis集群簡介

目前redis的集群有3種搭建方式:

1)keepalived:通過 keepalived 的虛擬 IP杂数,提供主從的統(tǒng)一訪問锌介,在主出現(xiàn)問題時, 通過 keepalived 運行腳本將從提升為主管嬉,待主恢復后先同步后自動變?yōu)橹髦此恚摲桨傅暮锰幨侵鲝那袚Q后肆糕,應(yīng)用程序不需要知道(因為訪問的虛擬 IP 不變)态鳖,壞處是引入 keepalived 增加部署復雜性,在有些情況下會導致數(shù)據(jù)丟失

2)redis-trib:ruby提供的串聯(lián)插件

3)Sentinel:官方提供的方式震贵,在2.4版本以后才出來的方式利赋,在2.4版本前都會選擇前面兩種方式。

我們將采用第三種方式進行集群搭建猩系。

二媚送、Redis集群原理

1):Master的狀態(tài)檢測?

2):如果Master異常,則會進行Master-Slave切換寇甸,將其中一個Slave作為Master塘偎,將 之前的Master作為Slave

3):Master-Slave切換后,master_redis.conf拿霉、slave_redis.conf和sentinel.conf的內(nèi)容都 會發(fā)生改變吟秩,即master_redis.conf中會多一行slaveof的配置,sentinel.conf的監(jiān)控目標 會隨之調(diào)換

三绽淘、Redis集群工作方式

1):每個Sentinel以每秒鐘一次的頻率向它所知的Master涵防,Slave以及其他 Sentinel 實 例發(fā)送一個PING命令

2):如果一個實例(instance)距離最后一次有效回復 PING 命令的時間超過 down-after-milliseconds選項所指定的值, 則這個實例會被 Sentinel 標記為主觀下線沪铭。

3):如果一個Master被標記為主觀下線壮池,則正在監(jiān)視這個Master的所有 Sentinel 要以 每秒一次的頻率確認Master的確進入了主觀下線狀態(tài)。

?4):當有足夠數(shù)量的 Sentinel(大于等于配置文件指定的值)在指定的時間范圍內(nèi)確認 Master的確進入了主觀下線狀態(tài)杀怠, 則Master會被標記為客觀下線

?5):在一般情況下椰憋, 每個 Sentinel 會以每 10 秒一次的頻率向它已知的所有Slave發(fā) 送INFO命令

6):當Master被 Sentinel 標記為客觀下線時,Sentinel 向下線的 Master 的所有 Slave 發(fā)送INFO命令的頻率會從 10 秒一次改為每秒一次

?7):若沒有足夠數(shù)量的 Sentinel 同意 Master 已經(jīng)下線赔退, Master 的客觀下線狀態(tài)就會 被移除橙依。 若Master重新向 Sentinel 的 PING 命令返回有效回復证舟, Master 的主觀下線狀態(tài)就 會被移除。

四窗骑、Sentinel環(huán)境搭建

環(huán)境準備:

我們目前需要3個全新的redis女责,我這里有3個虛擬機分別為192.168.159.128、192.168.159.129慧域、192.168.159.130鲤竹。

保證3個redis分別都能正常使用。

3個redis

修改192.168.159.129和192.168.159.130 中redis.conf文件信息昔榴,增加

masterauth "123456"

slaveof 192.168.159.128 6379


修改192.168.159.128中redis.conf文件信息,增加

masterauth "123456"


此時分別啟動三個系統(tǒng)中的redis

cd /usr/local

./src/redis-server /usr/local/redis-3.2.1/redis.conf &

數(shù)據(jù)正常同步碘橘,此時是一個標準的主從關(guān)系

1主2從

修改三個系統(tǒng)中的sentinel.conf

port 26379

daemonize yes

sentinel monitor mymaster 192.168.159.128 6379 2

sentinel down-after-milliseconds mymaster 5000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 10000

sentinel auth-pass mymaster 123456

protected-mode no

logfile "/usr/local/redis-3.2.1/sentinel.log"

#上面配置文件說明如下:

#第一行指定sentinel端口號

#第二行指定sentinel為后臺啟動

#第三行指定Sentinel去監(jiān)視一個名為 mymaster 的Master互订,Master的IP地址為192.168.159.128,端口號為6379痘拆,最后的2表示當有2個Sentinel檢測到Master異常時才會判定其失效仰禽,即只有當2個Sentinel都判定Master失效了才會自動遷移,如果Sentinel的數(shù)量不達標纺蛆,則不會執(zhí)行自動故障遷移吐葵。

#第四行指定Sentinel判定Master斷線的時間。(單位為毫秒桥氏,判定為主觀下線SDOWN)

#第五行指定在執(zhí)行故障轉(zhuǎn)移時温峭,最多可以有多少個Slave同時對新的Master進行同步。這個數(shù)字設(shè)置為1字支,雖然完成故障轉(zhuǎn)移所需的時間會變長凤藏,但是可以保證每有1個Slave處于不能處理命令請求的狀態(tài)


分別啟動三個系統(tǒng)中的哨兵

cd /usr/local

./src/redis-sentinel /usr/local/redis-3.2.1/sentinel.conf &

查看哨兵日志文件,發(fā)現(xiàn)主節(jié)點為192.168.159.128

查看主節(jié)點

停止主節(jié)點

停掉主節(jié)點

查看日志發(fā)現(xiàn)主節(jié)點變?yōu)?92.168.159.130

主節(jié)點變?yōu)?30

插入數(shù)據(jù)


插入數(shù)據(jù)

查看數(shù)據(jù)堕伪,發(fā)下數(shù)據(jù)在192.168.159.130和192.168.159.129中正常同步

查看數(shù)據(jù)

此時再啟動192.168.159.128

啟動128中redis

查看192.168.159.128中的數(shù)據(jù)揖庄,發(fā)現(xiàn)及時同步了

哨兵環(huán)境正常同步
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市欠雌,隨后出現(xiàn)的幾起案子蹄梢,更是在濱河造成了極大的恐慌,老刑警劉巖富俄,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禁炒,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛙酪,警方通過查閱死者的電腦和手機齐苛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桂塞,“玉大人凹蜂,你說我怎么就攤上這事。” “怎么了玛痊?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵汰瘫,是天一觀的道長。 經(jīng)常有香客問我擂煞,道長混弥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任对省,我火速辦了婚禮蝗拿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蒿涎。我一直安慰自己哀托,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布劳秋。 她就那樣靜靜地躺著仓手,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玻淑。 梳的紋絲不亂的頭發(fā)上嗽冒,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音补履,去河邊找鬼添坊。 笑死,一個胖子當著我的面吹牛干像,可吹牛的內(nèi)容都是我干的帅腌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼麻汰,長吁一口氣:“原來是場噩夢啊……” “哼速客!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起五鲫,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤溺职,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后位喂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浪耘,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年塑崖,在試婚紗的時候發(fā)現(xiàn)自己被綠了七冲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡规婆,死狀恐怖澜躺,靈堂內(nèi)的尸體忽然破棺而出蝉稳,到底是詐尸還是另有隱情,我是刑警寧澤掘鄙,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布耘戚,位于F島的核電站,受9級特大地震影響操漠,放射性物質(zhì)發(fā)生泄漏收津。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一浊伙、第九天 我趴在偏房一處隱蔽的房頂上張望撞秋。 院中可真熱鬧,春花似錦嚣鄙、人聲如沸部服。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奉芦,卻和暖如春赵抢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背声功。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工烦却, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人先巴。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓其爵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伸蚯。 傳聞我的和親對象是個殘疾皇子摩渺,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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