Redis三主三從集群

Redis-Cluster采用無(wú)中心結(jié)構(gòu),每個(gè)節(jié)點(diǎn)保存數(shù)據(jù)和整個(gè)集群狀態(tài),每個(gè)節(jié)點(diǎn)都和其他所有節(jié)點(diǎn)連接耕蝉。
一組Redis Cluster是由多個(gè)Redis實(shí)例組成裸准,官方推薦使用6實(shí)例,其中3個(gè)為主節(jié)點(diǎn)赔硫,3個(gè)為從節(jié)點(diǎn)炒俱。一旦有主節(jié)點(diǎn)發(fā)生故障的時(shí)候,Redis Cluster可以選舉出對(duì)應(yīng)的從節(jié)點(diǎn)成為新的主節(jié)點(diǎn)爪膊,繼續(xù)對(duì)外服務(wù)权悟,從而保證服務(wù)的高可用性。
\color{red}{注意:當(dāng)集群內(nèi)一個(gè)master以及其對(duì)應(yīng)的slave同時(shí)宕機(jī)推盛,集群將無(wú)法提供服務(wù)}
\color{red}{注意:當(dāng)存活的主節(jié)點(diǎn)數(shù)小于總節(jié)點(diǎn)數(shù)的一半時(shí)峦阁,整個(gè)集群就無(wú)法提供服務(wù)了。}

1.png

部署環(huán)境:

IP地址 端口 角色 Redis版本
10.10.41.111 7000 redis-master 5.0.8
10.10.41.111 7001 redis-slave 5.0.8
10.10.41.112 7000 redis-master 5.0.8
10.10.41.112 7001 redis-slave 5.0.8
10.10.41.113 7000 redis-master 5.0.8
10.10.41.113 7001 redis-slave 5.0.8

1.安裝Redis

1耘成、安裝C/C++環(huán)境
Redis編譯時(shí)需要使用C/C++環(huán)境:
yum install -y gcc gcc-c++ make

2榔昔、下載Redis安裝包
下載地址:http://download.redis.io/releases/
cd /data
wget http://download.redis.io/releases/redis-5.0.8.tar.gz

3、解壓瘪菌、編譯
tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make

4撒会、創(chuàng)建Redis相關(guān)工作目錄(目錄可自定義)
mkdir /data/redis-cluster/{data/{redis_7000,redis_7001},conf,log} -p

5、復(fù)制redis配置文件
cd redis-5.0.8
cp redis.conf /data/redis-cluster/conf/redis_7000.conf
cp redis.conf /data/redis-cluster/conf/redis_7001.conf

2.修改Redis配置文件

1师妙、修改redis-master配置文件
vi /data/redis-cluster/conf/redis_7000.conf

port 7000             #修改redis監(jiān)聽(tīng)端口(可以自定義)
bind 0.0.0.0            #表示redis允許所有地址連接诵肛。默認(rèn)127.0.0.1,僅允許本地連接默穴。
daemonize yes             #允許redis后臺(tái)運(yùn)行
pidfile /var/run/redis_7000.pid     #pid存放目錄
logfile "/var/log/redis-sentinel.log"   #設(shè)置Sentinel日志存放路徑
dir /data/redis-cluster/data/redis_7000  #工作目錄
cluster-enabled yes     #是否開(kāi)啟集群
cluster-config-file /data/redis-cluster/conf/nodes_7000.conf
#集群配置文件的名稱怔檩,每個(gè)節(jié)點(diǎn)都有一個(gè)集群相關(guān)的配置文件,持久化保存集群的信息
#這個(gè)文件并不需要手動(dòng)配置蓄诽,這個(gè)配置文件有Redis生成并更新薛训,
cluster-node-timeout 15000
#節(jié)點(diǎn)互連超時(shí)的閥值。集群節(jié)點(diǎn)超時(shí)毫秒數(shù)仑氛,默認(rèn)15秒
appendonly yes
#Redis會(huì)把每次寫(xiě)入的數(shù)據(jù)在接收后都寫(xiě)入 appendonly.aof 文件乙埃, 
#每次啟動(dòng)時(shí)Redis都會(huì)先把這個(gè)文件的數(shù)據(jù)讀入內(nèi)存里闸英,先忽略RDB文件。
requirepass 123456    #設(shè)置redis密碼
masterauth 123456    #主從同步master的密碼(如果沒(méi)有設(shè)置redis密碼膊爪,則無(wú)需配置)

2自阱、修改redis-slave配置文件
vi /data/redis-cluster/conf/redis_7001.conf #修改redis-slave配置文件,具體如下:

port 7001
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis-cluster/redis_7001.pid
logfile "/data/redis-cluster/log/redis_7001.log"
dir /data/redis-cluster/data/redis_7001
cluster-enabled yes
cluster-config-file /data/redis-cluster/conf/nodes_7001.conf 
cluster-node-timeout 15000
appendonly yes
requirepass 123456
masterauth 123456

3.分發(fā)到集群其他服務(wù)器

復(fù)制redis以及工作目錄到其他服務(wù)器
scp -r redis-5.0.8 redis-cluster root@10.10.41.112:/data
scp -r redis-5.0.8 redis-cluster root@10.10.41.113:/data

設(shè)置軟鏈接米酬,方便啟動(dòng)redis服務(wù)
ln -s /data/redis-5.0.8/src/redis-server /usr/bin/redis-server
ln -s /data/redis-5.0.8/src/redis-cli /usr/bin/redis-cli

4.啟動(dòng)Redis

集群內(nèi)每臺(tái)服務(wù)器分別啟動(dòng)兩個(gè)redis
redis-server /data/redis-cluster/conf/redis_7000.conf
redis-server /data/redis-cluster/conf/redis_7001.conf
驗(yàn)證是否啟動(dòng)成功
ps -ef | grep redis
查看版本
redis-cli --version
redis-server --version

5.創(chuàng)建Redis Cluster

注意:redis5.0以上集群創(chuàng)建方式改為了C編寫(xiě)的redis-cli創(chuàng)建沛豌,不用再安裝麻煩的ruby。
創(chuàng)建集群赃额,--cluster-replicas 1指定從庫(kù)數(shù)量1加派,創(chuàng)建順序三主-三從。即主-主-主-從-從-從跳芳。
如果redis設(shè)置了密碼芍锦,則創(chuàng)建集群時(shí)需要添加密碼信息 -a 密碼:
redis-cli -a 123456 --cluster create 10.10.41.111:7000 10.10.41.112:7000 10.10.41.113:7000 10.10.41.111:7001 10.10.41.112:7001 10.10.41.113:7001 --cluster-replicas 1


2.png

確認(rèn)集群配置信息,確認(rèn)無(wú)誤則輸入 yes 并按回車


3.png

出現(xiàn)以上信息飞盆,表示集群配置成功娄琉。

6驗(yàn)證集群Redis-Cluster

1、登錄redis集群
redis-cli -a 123456 -h 10.10.41.111 -p 7000 -c
-a Redis密碼,-c表示集群模式 ,指定IP和端口
注意:可能會(huì)redirected進(jìn)入到其它server

2吓歇、驗(yàn)證集群信息
10.10.41.111:7000> cluster info #查看集群信息


4.png

10.10.41.111:7000> cluster nodes #查看集群節(jié)點(diǎn)列表


5.png

查看集群內(nèi)主從關(guān)系:
redis-cli -a 123456 -h 10.10.41.111 -p 7000 -c cluster slots | xargs  -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq

3孽水、進(jìn)行數(shù)據(jù)驗(yàn)證操作
插入數(shù)據(jù):
10.10.41.111:7000> set mykey "Hello Redis"
10.10.41.113:7000> get mykey
登錄其他節(jié)點(diǎn)查看數(shù)據(jù):
redis-cli -a 123456 -h 10.10.41.112 -p 7000 -c
10.10.41.112:7000> get mykey

4、驗(yàn)證集群故障轉(zhuǎn)移
將其中一個(gè)redis-master停止掉后城看、其對(duì)應(yīng)的slave節(jié)點(diǎn)會(huì)被選舉為master節(jié)點(diǎn)女气,舊master節(jié)點(diǎn)重新恢復(fù)時(shí),其角色會(huì)成為slave测柠。具體可自行驗(yàn)證炼鞠,驗(yàn)證時(shí)可開(kāi)啟日志查看相關(guān)信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末轰胁,一起剝皮案震驚了整個(gè)濱河市谒主,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌软吐,老刑警劉巖瘩将,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凹耙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)肠仪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門肖抱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人异旧,你說(shuō)我怎么就攤上這事意述。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵荤崇,是天一觀的道長(zhǎng)拌屏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)术荤,這世上最難降的妖魔是什么倚喂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮瓣戚,結(jié)果婚禮上端圈,老公的妹妹穿的比我還像新娘。我一直安慰自己子库,他們只是感情好舱权,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著仑嗅,像睡著了一般宴倍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仓技,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天鸵贬,我揣著相機(jī)與錄音,去河邊找鬼浑彰。 笑死恭理,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的郭变。 我是一名探鬼主播颜价,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诉濒!你這毒婦竟也來(lái)了周伦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤未荒,失蹤者是張志新(化名)和其女友劉穎专挪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體片排,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寨腔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了率寡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迫卢。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冶共,靈堂內(nèi)的尸體忽然破棺而出乾蛤,到底是詐尸還是另有隱情每界,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布家卖,位于F島的核電站眨层,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏上荡。R本人自食惡果不足惜趴樱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榛臼。 院中可真熱鬧伊佃,春花似錦、人聲如沸沛善。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)金刁。三九已至帅涂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尤蛮,已是汗流浹背媳友。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留产捞,地道東北人醇锚。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像坯临,于是被迫代替她去往敵國(guó)和親焊唬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354