Redis集群

環(huán)境介紹

操作系統(tǒng):Centos 6.* ( 雙核4G、硬盤至少20G)
redis 版本:3.0.5
1:redis-IP:192.168.1.180 (redis端口:6000/6001)
2:redis-IP:192.168.1.101 (redis端口:6002/6003)
3:redis-IP:192.168.1.127 (redis端口:6004/6005)

一:redis安裝

(三臺服務(wù)均裝redis服務(wù))

1)安裝依賴包

yum -y install make(現(xiàn)有的無需再yum)
yum -y install wget
yum -y install gcc-c++(必須加否則make時會出錯)

2)下載redis包(2的版本不支持集群)

wget http://download.redis.io/releases/redis-3.0.5.tar.gz

3)解壓redis包到/usr/local

tar –zxvf redis-3.0.5.tar.gz –C /usr/local

4)進(jìn)入解壓目錄并將其重命名

cd /usr/local
mv redis-3.0.5 redis

5)編譯安裝redis服務(wù)

cd redis
make &&  make install

6)添加redis環(huán)境變量

echo -e "export REDIS_HOME=\"/usr/local/redis-3.0.5\"
export PATH=\"\$PATH:\$REDIS_HOME/src\"" >> /etc/profile

7)使環(huán)境變量生效

source /etc/profile

8)啟動redis服務(wù)并查看端口

redis-server &
netstat -ntpl |grep "6379"

二:配置redis集群

(三臺分別兩個redis,目錄及端口分別對應(yīng)修改)

1)創(chuàng)建并復(fù)制配置文件至集群目錄

mkdir -p /usr/local/cluster
cd /usr/local/cluster
mkdir 6000
mkdir 6001
cp /usr/local/redis/redis.conf  /usr/local/cluster

2)修改配置文件

cd /usr/local/cluster
vi redis.conf
port 6000
daemonize yes
cluster-enabled yes                  
cluster-config-file nodes.conf         
cluster-node-timeout 5000             #當(dāng)網(wǎng)絡(luò)分裂出現(xiàn)期間,節(jié)點(diǎn)超時時間批幌,是一個重要的配置選項
appendonly yes

文件中的 cluster-enabled 選項用于開實(shí)例的集群模式
cluster-conf-file 選項則設(shè)定了保存節(jié)點(diǎn)配置文件的路徑,它由 Redis 集群在啟動時創(chuàng)建, 并在有需要時自動進(jìn)行更新。

3)把修改后配置文件分別拷貝到6000/6001/目錄下面

cp /usr/local/cluster/redis.conf /usr/local/cluster/6000
cp /usr/local/cluster/redis.conf /usr/local/cluster/6001

4)修改6001/6002目錄下面redis.conf文件中的port參數(shù)并分別啟動這2個redis實(shí)例

cd /usr/local/cluster/6000
redis-server redis.conf &
cd /usr/local/cluster/6001
redis-server redis.conf &
看下各各文件下是有這文件,尤其是nodes.conf 
192.168.1.180

192.168.1.101

192.168.1.127.jpg

5)執(zhí)行redis的創(chuàng)建集群命令創(chuàng)建集群
5.1)一臺做redis集群:

cd /usr/local/redis/src

./redis-trib.rb  create --replicas 1 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005

5.2)三臺做redis集群
還是要在配置文件中修改redis.conf里的bind 127.0.0.1修改成0.0.0.0,重啟redis服務(wù)生效呻粹。然后再執(zhí)行創(chuàng)建集群的命令。

./redis-trib.rb  create --replicas 1 192.168.1.180:6000 192.168.1.180:6001 192.168.1.101:6002 192.168.1.101:6003 127.0.0.1:6004 127.0.0.1:6005

5.2.1) 執(zhí)行上面的命令的時候會報錯苏研,因?yàn)槭菆?zhí)行的ruby的腳本等浊,需要ruby的環(huán)境


ruby.jpg

A)所以需要安裝ruby的環(huán)境,使用yum安裝

yum install ruby
ruby

5.2.2)然后執(zhí)行5.2的創(chuàng)建集群命令

 ./redis-trib.rb  create --replicas 1 192.168.1.180:6000 192.168.1.180:6001 192.168.1.101:6002 192.168.1.101:6003 127.0.0.1:6004 127.0.0.1:6005
rubygems.jpg

B)還會報錯摹蘑,提示缺少rubygems組件筹燕,使用yum安裝

yum -y install rubygems

5.2.3)然后執(zhí)行5.2的創(chuàng)建集群命令

 ./redis-trib.rb  create --replicas 1 192.168.1.180:6000 192.168.1.180:6001 192.168.1.101:6002 192.168.1.101:6003 127.0.0.1:6004 127.0.0.1:6005
redis.jpg

C)還會報錯,提示不能加載redis,是因?yàn)槿鄙賠edis和ruby的接口庄萎,

 gem install redis
gem.jpg

5.2.4)然后執(zhí)行5.2的創(chuàng)建集群命令

 ./redis-trib.rb  create --replicas 1 192.168.1.180:6000 192.168.1.180:6001 192.168.1.101:6002 192.168.1.101:6003 127.0.0.1:6004 127.0.0.1:6005

1.jpg
2.jpg

到此集群搭建完W偕佟!糠涛!

1)創(chuàng)建集群時報下錯:
這是由于上一次配置集群失敗時留下的配置信息導(dǎo)致的。 只要把redis.conf中定義的 cluster-config-file 所在的文件刪除兼犯,重新啟動redis-server及運(yùn)行redis-trib即可忍捡。


error.jpg
三臺做的集群
redis-cli -p 6004 cluster nodes
slave.jpg

在圖中, 從左到右的各個域分別是: 節(jié)點(diǎn) ID 切黔, IP 地址和端口號砸脊, 標(biāo)志(flag), 最后發(fā)送 PING 的時間纬霞, 最后接收 PONG 的時間凌埂, 連接狀態(tài), 節(jié)點(diǎn)負(fù)責(zé)處理的槽诗芜。

由此可看出:
6004主瞳抓,6005從
6000主,6003從
6002主伏恐,6001從

測試

1.1)已在192.168.1.101上停掉了redis-server的6002端口


6002-shutdown.jpg

1.2)圖中已顯示6002主已經(jīng)連接失敗孩哑,6001成為了master

6002-shutdown-2.jpg

1.3)6002redis已啟動


6002-start.jpg

1.4)6002變?yōu)閟lave

6002-slave.jpg

簡單來說:當(dāng)主宕掉后,主會失敗翠桦,從依舊在横蜒,過段時間從會頂替掉宕掉的主變成主,而最初的主一直出入失敗中销凑。當(dāng)最初的主的redis服務(wù)啟動后丛晌,會變成從,直接顛倒斗幼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澎蛛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子孟岛,更是在濱河造成了極大的恐慌瓶竭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渠羞,死亡現(xiàn)場離奇詭異斤贰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)次询,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門荧恍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事送巡∧〔ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵骗爆,是天一觀的道長次氨。 經(jīng)常有香客問我,道長摘投,這世上最難降的妖魔是什么煮寡? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮犀呼,結(jié)果婚禮上幸撕,老公的妹妹穿的比我還像新娘。我一直安慰自己外臂,他們只是感情好卸伞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布岩梳。 她就那樣靜靜地躺著柴淘,像睡著了一般叽粹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跃须,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天站叼,我揣著相機(jī)與錄音,去河邊找鬼菇民。 笑死尽楔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的第练。 我是一名探鬼主播阔馋,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娇掏!你這毒婦竟也來了呕寝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤婴梧,失蹤者是張志新(化名)和其女友劉穎下梢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塞蹭,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡孽江,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了番电。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岗屏。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡辆琅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出这刷,到底是詐尸還是另有隱情婉烟,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布暇屋,位于F島的核電站似袁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏率碾。R本人自食惡果不足惜叔营,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望所宰。 院中可真熱鬧,春花似錦畜挥、人聲如沸仔粥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躯泰。三九已至,卻和暖如春华糖,著一層夾襖步出監(jiān)牢的瞬間麦向,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工客叉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诵竭,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓兼搏,卻偏偏與公主長得像卵慰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子佛呻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

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