redis cluster集群搭建

今天我們來講一下redis cluster集群的搭建橱野。
在redis3.0以前,redis只有主從和哨兵兩種集群方式,在3.0版本以后又新添加了一種cluster集群方式斑粱。其實(shí)單純的從集群的角度三热,哨兵模式已經(jīng)能夠滿足我們對(duì)于高可用的需要了鼓择,但是為什么還有新提供cluster集群的方式呢?
在3.0以前就漾,在存儲(chǔ)大數(shù)據(jù)量的時(shí)候呐能,我們通常會(huì)對(duì)要存儲(chǔ)的鍵值對(duì)的key的hashcode進(jìn)行取模操作,根據(jù)取模后的結(jié)果來將該鍵值對(duì)存放到對(duì)應(yīng)的服務(wù)器上抑堡。但是這樣的操作就會(huì)引發(fā)一個(gè)問題摆出,如何動(dòng)態(tài)的擴(kuò)展,一旦增加或刪除機(jī)器夷野,那么都會(huì)導(dǎo)致某些key在redis服務(wù)器中無法命中懊蒸。因此,3.0版本以后悯搔,redis增加了cluster方式的集群搭建骑丸。這種方式采用了hash slot(即hash槽)的概念,使多個(gè)redis實(shí)例整合到一起一起構(gòu)成了一個(gè)集群妒貌,數(shù)據(jù)分散到對(duì)應(yīng)的實(shí)例上通危。

接下來,我們就來介紹redis cluster集群模式的搭建方式灌曙,本示例中菊碟,我們以一臺(tái)服務(wù)器上的不同端口來模擬不同的服務(wù)器
1.下載redis安裝包(這里我們使用redis最新的5.0.0版本來介紹)
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
2.解壓
tar zxvf redis-5.0.0.tar.gz
3.進(jìn)入到解壓好的redis-5.0.0目錄
cd redis-5.0.0
4.編譯
make
5.在usr目錄下創(chuàng)建redis-cluster目錄
mkdir redis-cluster
6.在剛剛創(chuàng)建的redis-cluster目錄下創(chuàng)建對(duì)應(yīng)的redis實(shí)例的存放目錄
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
mkdir 7006
7.將redis的配置文件redis.conf復(fù)制到對(duì)應(yīng)的目錄下
cp /usr/redis-5.0.0/redis.conf /usr/redis-cluster/700*
8.并將不同目錄下的redis.conf文件進(jìn)行修改
vi redis.conf
9.修改以下配置項(xiàng)
port 700*
bind 192.168.109.202
daemonize yes
cluster-enabled yes
cluster-config-file nodes-700.conf
cluster-node-timeout 5000
pidfile /var/run/redis_700
.pid
appendonly yes
10.分別啟動(dòng)6個(gè)redis節(jié)點(diǎn)
/usr/redis-5.0.0/src/redis-server /usr/redis-cluster/700*/redis.conf

啟動(dòng)成功后日志

11.啟動(dòng)成功后可以檢查各個(gè)redis服務(wù)的狀態(tài)
ps -ef | grep redis
顯示6個(gè)redis實(shí)例為集群關(guān)系

12.安裝ruby環(huán)境
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

13.啟動(dòng)集群
/usr/redis-5.0.0/src/redis-trib.rb create --replicas 1 192.168.109.202:7001 192.168.109.202:7002 192.168.109.202:7003 192.168.109.202:7004 192.168.109.202:7005 192.168.109.202:7006


提示redis-trib.rb程序不可用,功能已經(jīng)遷移到redis-cli中

提示redis-trib.rb程序不可用在刺,功能已經(jīng)遷移到redis-cli中逆害,那我們使用redis-cli來啟動(dòng)集群
/usr/redis-5.0.0/src/redis-cli --cluster create 192.168.109.202:7001 192.168.109.202:7002 192.168.109.202:7003 192.168.109.202:7004 192.168.109.202:7005 192.168.109.202:7006 --cluster-replicas 1



輸入yes繼續(xù)
最終結(jié)果

最終的結(jié)果顯示有6個(gè)節(jié)點(diǎn)加入到集群中头镊,三個(gè)主節(jié)點(diǎn),三個(gè)從節(jié)點(diǎn)魄幕,并且只有主節(jié)點(diǎn)上分配有槽相艇,而從節(jié)點(diǎn)上是沒有分配槽的,一共有16384個(gè)槽纯陨。

14.通過redis-cli連接redis數(shù)據(jù)庫
/usr/redis-5.0.0/src/redis-cli -h 192.168.109.202 -c -p 7001



此時(shí)我們向redis中傳入鍵值對(duì)坛芽,會(huì)發(fā)現(xiàn)這個(gè)鍵值對(duì)被分發(fā)到了7002的redis服務(wù)上,也就是第5798個(gè)槽中
15.關(guān)閉redis cluster集群
pkill redis

至此翼抠,已經(jīng)為大家演示了redis cluster集群的搭建方式咙轩,以下是其中可能會(huì)遇到的問題
1.由于redis5.0版本將redis-trib.rb的功能移到了redis-cli中,因此阴颖,在使用5.0版本搭建cluster集群的時(shí)候活喊,是不需要安裝ruby環(huán)境的,5.0之前的版本需要
2.gem install redis
在執(zhí)行該命令時(shí)膘盖,會(huì)報(bào)錯(cuò)redis requires Ruby version >= 2.2.2胧弛,原因是centos默認(rèn)的ruby版本是2.0.0,因此我們需要升級(jí)ruby的版本侠畔。
a.先安裝curl
sudo yum install curl
b.再安裝rvm
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
c.使rvm的配置生效
source /usr/local/rvm/scripts/rvm
d.查看rvm庫中已有的ruby版本
rvm list known
e.選擇一個(gè)版本進(jìn)行安裝
rvm install ruby2.3.3
f.選擇該版本
rvm use ruby2.3.3
g.移除原有版本
rvm remove ruby2.0.0
此時(shí)在進(jìn)行g(shù)em install redis即可结缚。

3.在執(zhí)行curl -L get.rvm.io | bash -s stable命令的時(shí)候,可能會(huì)出現(xiàn)SSL connect error錯(cuò)誤
解決辦法:
a.升級(jí)nss (Network Security Service, 網(wǎng)絡(luò)安全服務(wù))
yum update nss
b.若沒有nss
yum install nss

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末软棺,一起剝皮案震驚了整個(gè)濱河市红竭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喘落,老刑警劉巖茵宪,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瘦棋,居然都是意外死亡稀火,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門赌朋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凰狞,“玉大人,你說我怎么就攤上這事沛慢∩娜簦” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵团甲,是天一觀的道長(zhǎng)逾冬。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么身腻? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任产还,我火速辦了婚禮,結(jié)果婚禮上嘀趟,老公的妹妹穿的比我還像新娘雕沉。我一直安慰自己,他們只是感情好去件,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扰路,像睡著了一般尤溜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汗唱,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天宫莱,我揣著相機(jī)與錄音,去河邊找鬼哩罪。 笑死授霸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的际插。 我是一名探鬼主播碘耳,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼框弛!你這毒婦竟也來了辛辨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤瑟枫,失蹤者是張志新(化名)和其女友劉穎斗搞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慷妙,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僻焚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膝擂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虑啤。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猿挚,靈堂內(nèi)的尸體忽然破棺而出咐旧,到底是詐尸還是另有隱情,我是刑警寧澤绩蜻,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布铣墨,位于F島的核電站,受9級(jí)特大地震影響办绝,放射性物質(zhì)發(fā)生泄漏伊约。R本人自食惡果不足惜姚淆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屡律。 院中可真熱鬧腌逢,春花似錦、人聲如沸超埋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽霍殴。三九已至媒惕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間来庭,已是汗流浹背妒蔚。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留月弛,地道東北人肴盏。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像帽衙,于是被迫代替她去往敵國和親菜皂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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