redis集群搭建

就寫給自己以后忘記的時候看看练链,不一定正確

安裝redis

wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
cd redis-5.0.3
make
cd src
cp redis-cli redis-sentinel redis-server /usr/sbin
#配置文件模板在redis-5.0.3目錄里面
cd ../
cp redis.conf sentinel.conf /etc/   #方便等下運行的時候,指定配置文件

一窟赏、搭建master-slave模式 (主備模式)

192.168.3.27 (master)
192.168.3.26 (slave)

修改master上的配置文件
vim /etc/redis.conf

然后在文件里面修改一下配置

bind 127.0.0.1====>bind 0.0.0.0  #方便其他機器訪問
daemonize no====>daemonize yes  #以后臺方式運行
logfile ""====>logfile "/var/log/redis.conf"  #指定日志文件,方便追蹤排查

然后運行

redis-server /etc/redis.conf
修改slave主機上的配置文件

修改和master一樣的設(shè)置后,在redis.conf里面增加

replicaof 192.168.3.27 6379   #指定本機的master為192.168.3.27

然后運行

redis-server /etc/redis.conf
查看運行結(jié)果
slave運行信息
master運行信息
驗證

image.png

在master上設(shè)置一個key后,在slave上也有相應(yīng)的key,默認情況該模式下财骨,主服務(wù)器上可以進行讀寫,從服務(wù)器只能讀藏姐,如:
image.png

但是如果在從服務(wù)器的配置文件修改配置
image.png

將replica-read-only的值yes改成no隆箩,重啟后,就可以讀寫
ps:從服務(wù)器配置成可以寫入羔杨,但是寫入的值并不會同步到主服務(wù)器上

同步機制
image.png
  • 當(dāng)slave第一次連上master時捌臊,會進行一次完整同步
  • 當(dāng)master上寫入新的值時,slave會向master請求一次partial resynchronization兜材,根據(jù)offset值理澎,只進行增量同步
  • 當(dāng)master重啟之后,slave向master請求增量同步時曙寡,由于和之前的id不一致糠爬,所以會重新進行一次完整同步

二、搭建master-sentinel模式 (哨兵模式)

sentinel模式可以在master下線后举庶,從slave中選擇一臺升級為master秩铆。
配置環(huán)境列表:
ip: 11.11.1.108 port: 6379 (master) -------- ip: 11.11.1.108 port: 26379 (sentinel進程)
ip: 11.11.1.107 port: 6379 (slave) -------- ip: 11.11.1.107 port: 26379 (sentinel進程)
ip: 11.11.1.106 port: 6379 (master) -------- ip: 11.11.1.106 port: 26379 (sentinel進程)

配置文件:
1、首先按照主備分別配置3臺服務(wù)器 ()
slave上的redis.conf 上灯变,在默認的配置文件里面添加

replicaof 11.11.1.108 6379   # 標明是108的slave

然后在3臺服務(wù)器上分別啟動redis

redis-server /etc/redis/redis.conf

2、配置 sentinel
下面是配置sentinel文件的典型配置:

sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
  • sentinel monitor <master-group-name> <ip> <port> <quorum>
    意思是sentinel進程捅膘,去監(jiān)聽一組名稱為:master-group-name 的redis服務(wù)添祸。
    quorum的意思是仲裁的數(shù)量,例如 sentinel monitor mymaster 127.0.0.1 6379 2
    表示監(jiān)聽一組名稱為mymaster的服務(wù)寻仗,監(jiān)聽的地址是127.0.0.1的6379端口刃泌, 仲裁的數(shù)量為2。
    ps: 需要設(shè)置仲裁的原因是,redis-sentinel模式是靠sentinel進程去監(jiān)聽服務(wù)耙替,然后去變換master亚侠,如果你集群里面設(shè)置3個redis服務(wù),然后只有一個sentinel去監(jiān)聽俗扇,那么當(dāng)這個sentinel進程掛掉的時候硝烂,就不會自動變換master了呀。quorum = 2 表示兩個sentinel進程監(jiān)聽到master下線了铜幽,就會觸發(fā)變換master的過程

  • down-after-milliseconds
    實例無法訪問超過這個時間后滞谢,sentinel就會認為這個master已經(jīng)下線

  • parallel-syncs
    在執(zhí)行故障轉(zhuǎn)移時, 最多可以有多少個從服務(wù)器同時對新的主服務(wù)器進行同步

  • failover-timeout
    故障轉(zhuǎn)移時除抛,超時的時間

3狮杨、配置
配置11.11.1.108 (master) sentinel.conf

port 26379
bind 0.0.0.0
daemonize yes
sentinel monitor zycloud localhost 6379 2
sentinel down-after-milliseconds zycloud 30000
sentinel failover-timeout zycloud 180000
sentinel parallel-syncs zycloud 1

配置11.11.1.106,11.11.1.107 sentinel.conf

port 26379
bind 0.0.0.0
daemonize yes
sentinel monitor zycloud 11.11.1.108 6379 2
sentinel down-after-milliseconds zycloud 30000
sentinel failover-timeout zycloud 180000
sentinel parallel-syncs zycloud 1

然后在3臺服務(wù)器上分別把sentinel啟動

redis-sentinel /etc/redis/sentinel.conf

4到忽、測試

  • 首先在3臺服務(wù)器都存活的情況下


    image.png

    目前初始情況下橄教,108是master。
    查看一下sentinel的信息:

~ redis-cli -h 11.11.1.108 -p 26379
11.11.1.108:26379> sentinel masters
1)  1) "name"
    2) "zycloud"
    3) "ip"
    4) "127.0.0.1"    #目前的master ip 喘漏,由于是通過108登錄進來的护蝶,所以目前顯示的是127.0.0.1
    5) "port"
    6) "6379"
    7) "runid"
    8) "9d626bf0aaf0bdd9f00925436ac6b59702f68121"
    9) "flags"
   10) "master"
   11) "link-pending-commands"
   12) "0"

也可以通過sentinel的get-master-addr-by-name來獲取目前的master ip

11.11.1.108:26379> sentinel get-master-addr-by-name zycloud
1) "127.0.0.1"
2) "6379"
  • 現(xiàn)在斷開master,可以只殺掉redis-server的進程陷遮,也可以直接關(guān)機滓走,我比較懶,直接斷開master的網(wǎng)卡
~ redis-cli -h 11.11.1.106 -p 26379
11.11.1.106:26379> sentinel get-master-addr-by-name zycloud
1) "11.11.1.107"
2) "6379"
11.11.1.106:26379>

可以看到帽馋,現(xiàn)在的master已經(jīng)被更換為107了搅方。


1)由于上面設(shè)置的quorum = 2,所以測試的時候绽族,最少需要兩個sentinel進程存活姨涡,否則是無法選舉新的master
2)選舉哪臺從服務(wù)器升級為master是根據(jù)配置文件redis.conf里的replica-priority判斷的

image.png

3)配置文件redis.conf是會被sentinel修改配置的

最后編輯于
?著作權(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é)果婚禮上,老公的妹妹穿的比我還像新娘骚亿。我一直安慰自己已亥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布来屠。 她就那樣靜靜地躺著虑椎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俱笛。 梳的紋絲不亂的頭發(fā)上捆姜,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音迎膜,去河邊找鬼泥技。 笑死,一個胖子當(dāng)著我的面吹牛磕仅,可吹牛的內(nèi)容都是我干的珊豹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼榕订,長吁一口氣:“原來是場噩夢啊……” “哼店茶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劫恒,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤贩幻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后两嘴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丛楚,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年憔辫,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸯檬。 大學(xué)時的朋友給我發(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
  • 正文 我出身青樓歹颓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拳亿。 傳聞我的和親對象是個殘疾皇子晴股,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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

  • 部署集群環(huán)境 1)redis集群搭建至少需要六臺機器,才能組成肺魁, ip地址規(guī)劃如下: – redisA 192....
    浪子心聲427閱讀 259評論 0 0
  • Redis集群 使用redis做緩存工具 實現(xiàn)系統(tǒng)高可用电湘,redis需要做主備。使用redis做分片集群鹅经。 向業(yè)務(wù)...
    tanghuibook閱讀 552評論 0 0
  • 一寂呛、Redis集群簡介 目前redis的集群有3種搭建方式: 1)keepalived:通過 keepalived...
    面朝大海_1234閱讀 3,687評論 0 0
  • 背景 在測試服務(wù)器(CentOS 系統(tǒng))上搭建 Redis 集群,這里一步步實踐并整理一些較好的步驟瘾晃。 正文 簡單...
    mrzhqiang閱讀 546評論 0 0