docker redis 哨兵模式

redis讀寫(xiě)分離 -- 主從架構(gòu)

  1. slave啟動(dòng)后永品,ping通master節(jié)點(diǎn)缤骨。master節(jié)點(diǎn)給slave一個(gè)數(shù)據(jù)復(fù)制任務(wù)公黑,RDB全量數(shù)據(jù)同步。slave先將rdb文件下載到本地磁盤(pán)再讀仍科健贞远; ----- 全量復(fù)制
  2. master將修改的執(zhí)行命令賦值給slave蛋褥,進(jìn)行數(shù)據(jù)的持續(xù)同步彼宠。slave會(huì)在替換完成后再使用新的數(shù)據(jù),沒(méi)有同步完成之前讀取時(shí)使用老的數(shù)據(jù)诗力; ----- 增量傳遞

備注:master須開(kāi)啟持久化凰浮,否則master掛掉重啟后不能恢復(fù)數(shù)據(jù),slave會(huì)因?yàn)橥蕉蹇?/p>

缺點(diǎn):主從架構(gòu)在master節(jié)點(diǎn)掛掉之后苇本,slave節(jié)點(diǎn)雖然存活袜茧,但是無(wú)法增刪改數(shù)據(jù),只能提供查詢(xún)用圈澈。如果想要基礎(chǔ)可寫(xiě)入惫周,需人工干預(yù)。

哨兵模式應(yīng)運(yùn)而生康栈,哨兵可以在主發(fā)生故障后递递,自動(dòng)進(jìn)行故障轉(zhuǎn)移,從從機(jī)里選出一臺(tái)升級(jí)為主機(jī)啥么,并持續(xù)監(jiān)聽(tīng)著原來(lái)的主機(jī)登舞,當(dāng)原來(lái)的主機(jī)恢復(fù)后,會(huì)將其作為新主的從機(jī)悬荣。

redis主從搭建

我本地準(zhǔn)備了兩臺(tái)服務(wù)器192.168.0.170192.168.0.171
1菠秒、分別在兩臺(tái)服務(wù)器上執(zhí)行

拉取鏡像
docker pull redis

啟動(dòng)容器
docker run -d -p 6379:6379 --name myredis redis:latest    

進(jìn)入容器
docker exec -it [容器ID] /bin/bash     

打開(kāi)redis客戶(hù)端
redis-cli

2、此時(shí)兩個(gè)服務(wù)器的redis客戶(hù)端還是相互獨(dú)立的單應(yīng)用氯迂,我將170的服務(wù)作為171的備份關(guān)聯(lián)起來(lái)
在170的客戶(hù)端命令中執(zhí)行

slaveof   192.168.0.171  6379

完成后践叠,在171 節(jié)點(diǎn)指向 info replication看到的信息如下, 可以看出171在集群中的角色是master,并且它有一個(gè)已連接的從節(jié)點(diǎn)是170

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.0.170,port=6379,state=online,offset=1141,lag=1
master_replid:8954d7b8aaa855e5c465c24d2fe000501c82711a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1141
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1141

從節(jié)點(diǎn)170的信息如下

127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.0.171
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_repl_offset:1707
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:8954d7b8aaa855e5c465c24d2fe000501c82711a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1707
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1707


redis哨兵搭建

下載并配置一個(gè)哨兵配置文件如下嚼蚀,兩個(gè)文件都用這個(gè)文件即可

port 26379
daemonize yes
pidfile "/var/run/redis-sentinel.pid"
logfile "/var/log/sentinel.log"
dir "/tmp"
sentinel myid 14156cf20bb543add7cdce6665b4bc5e16eb82dd
sentinel monitor mymaster 192.168.0.171 6379 1
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
bind  127.0.0.1  xx.xx.xx.xx  暴露在公網(wǎng)時(shí)禁灼,綁定IP表示只能由這些機(jī)器訪問(wèn)
protected-mode no  關(guān)閉保護(hù)模式,公網(wǎng)時(shí)可開(kāi)啟
port  23679
daenibize  yes  改成后臺(tái)運(yùn)行
pidfile /var/run/redis-sentinel.pid  進(jìn)程文件
logfile  /xxxxx    哨兵的日志
dir /url/local/sentinel    工作目錄
sentinel monitor mymater 192.168.0.170 6379 2    核心配置:
        mymaster:自定義給master命名的昵稱(chēng)轿曙,不能由特殊文字和空格等
        ip值表示master節(jié)點(diǎn)所在的內(nèi)網(wǎng)的IP
        2(quorum):表示如果有兩臺(tái)哨兵發(fā)現(xiàn)了master故障弄捕,就由一個(gè)或者兩個(gè)執(zhí)行故障轉(zhuǎn)移,重新選舉master
sentinel  auth-pass mymaster  MySUPER--secret-0123passw0rd
        mymaster 上面的master   后面是密碼  sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds  mymaster 30000(毫秒)  被哨兵認(rèn)為掛掉的時(shí)間段
sentinel parallel-syncs mymaster 1  選舉新的master导帝,其他slave同步數(shù)據(jù)并行的個(gè)數(shù)守谓,為1就是1個(gè)接一個(gè)
sentinel failover-timeout mymaster 180000  準(zhǔn)備切換的超時(shí)時(shí)間,默認(rèn)3分鐘

接下來(lái)您单,可以啟動(dòng)哨兵了(兩臺(tái)服務(wù)器都要執(zhí)行)

開(kāi)啟哨兵容器斋荞,/root/sentinel.conf 掛載自己的數(shù)據(jù)卷
docker run --name sentinel -p 26379:26379 -v /root/sentinel.conf:/usr/local/etc/redis/sentinel.conf -d redis

隨后進(jìn)入容器
docker exec -it 【容器ID】 /bin/bash

啟動(dòng)哨兵
redis-sentinel  /use/local/etc/redis/sentinel.conf

兩臺(tái)服務(wù)器執(zhí)行完成之后,哨兵就可用的虐秦,master節(jié)點(diǎn)掛掉之后譬猫,slave節(jié)點(diǎn)會(huì)被選舉為新的master節(jié)點(diǎn)接管工作(這個(gè)過(guò)程需要一定時(shí)間)

整合SpringBoot

修改前

spring:
   redis:
    database: 0
    password:
    host: localhost
    port: 6379

修改后

spring:
   redis:
    database: 0
    password:
    sentinel:
      master: mymaster
      nodes: 192.168.0.170:26379,192.168.0.171:26379       # 哨兵的地址
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讯檐,一起剝皮案震驚了整個(gè)濱河市羡疗,隨后出現(xiàn)的幾起案子染服,更是在濱河造成了極大的恐慌,老刑警劉巖叨恨,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柳刮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡痒钝,警方通過(guò)查閱死者的電腦和手機(jī)秉颗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)送矩,“玉大人蚕甥,你說(shuō)我怎么就攤上這事《拜” “怎么了菇怀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)晌块。 經(jīng)常有香客問(wèn)我爱沟,道長(zhǎng),這世上最難降的妖魔是什么匆背? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任呼伸,我火速辦了婚禮,結(jié)果婚禮上钝尸,老公的妹妹穿的比我還像新娘括享。我一直安慰自己,他們只是感情好珍促,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布铃辖。 她就那樣靜靜地躺著,像睡著了一般踢星。 火紅的嫁衣襯著肌膚如雪澳叉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天沐悦,我揣著相機(jī)與錄音成洗,去河邊找鬼。 笑死藏否,一個(gè)胖子當(dāng)著我的面吹牛瓶殃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播副签,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼遥椿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼基矮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起冠场,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤家浇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后碴裙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體钢悲,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年舔株,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莺琳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡载慈,死狀恐怖惭等,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情办铡,我是刑警寧澤辞做,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站料扰,受9級(jí)特大地震影響凭豪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晒杈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一嫂伞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拯钻,春花似錦帖努、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至亩歹,卻和暖如春匙监,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背小作。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工亭姥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顾稀。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓达罗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親静秆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粮揉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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