Redis集群搭建

這里創(chuàng)建6個redis節(jié)點(diǎn)夹厌,其中三個為主節(jié)點(diǎn)南蹂,三個為從節(jié)點(diǎn)栈雳。
redis和端口對應(yīng)關(guān)系:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
從:
127.0.0.1:7003
127.0.0.1:7004
127.0.0.1:7005

步驟:
1,下載redis丘逸。官網(wǎng)下載3.0.0版本次屠,之前幾的版本不支持集群模式
下載地址:http://download.redis.io/releases/redis-3.0.0.tar.gz

2:上傳服務(wù)器媒楼,解壓乐尊,編譯

tar -zxvf redis-3.0.0.tar.gz
mv redis-3.0.0 redis3.0
cd /usr/local/redis3.0
make & make install

3:創(chuàng)建集群需要的目錄并拷貝redis

mkdir -p /usr/local/cluster
mkdir -p /usr/local/cluster/7000
mkdir -p /usr/local/cluster/7001
mkdir -p /usr/local/cluster/7002
mkdir -p /usr/local/cluster/7003
mkdir -p /usr/local/cluster/7004
mkdir -p /usr/local/cluster/7005
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7000/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7001/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7002/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7003/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7004/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7005/

4:修改配置文件redis.conf

vi /usr/local/cluster/7000/redis.conf

修改配置文件中的下面選項(xiàng)

port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

同樣再對其它配置文件進(jìn)行修改

vi /usr/local/cluster/7001/redis.conf
vi /usr/local/cluster/7002/redis.conf
vi /usr/local/cluster/7003/redis.conf
vi /usr/local/cluster/7004/redis.conf
vi /usr/local/cluster/7005/redis.conf

注意:不同的目錄配置不同的redis.conf中的port

5:啟動6個redis

cd /usr/local/cluster/7000/src
redis-server ../redis.conf
cd /usr/local/cluster/7001/src
redis-server ../redis.conf
cd /usr/local/cluster/7002/src
redis-server ../redis.conf
cd /usr/local/cluster/7003/src
redis-server ../redis.conf
cd /usr/local/cluster/7004/src
redis-server ../redis.conf
cd /usr/local/cluster/7005/src
redis-server ../redis.conf

啟動之后使用命令查看redis的啟動情況:

ps -ef | grep redis

6,創(chuàng)建redis集群

cd /usr/local/redis3.0/src
./redis-trib.rb  create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

6.1執(zhí)行上面的命令的時候會報(bào)錯,因?yàn)槭菆?zhí)行的的腳本划址,需要
錯誤內(nèi)容:/usr/bin/env: ruby: No such file or directory
所以需要安裝ruby的環(huán)境扔嵌,這里推薦使用yum install ruby

yum install ruby

6.2然后再執(zhí)行第步的創(chuàng)建集群命令,還會報(bào)錯夺颤,提示缺少rubygems組件
錯誤內(nèi)容:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24

yum install rubygems

6.3再次執(zhí)行第步的命令痢缎,還會報(bào)錯,提示不能加載redis世澜,是因?yàn)槿鄙賠edis的接口
錯誤內(nèi)容:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require
from ./redis-trib.rb:25

gem install redis
這里可能無法安裝,因?yàn)闊o法連接gem服務(wù)器:
[@zw_22_90 src]# gem install redis --version 3.0.0
ERROR: Could not find a valid gem 'redis' (= 3.0.0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)

需要手工下載并安裝:

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem

6.4 再次執(zhí)行第步的命令独旷,正常執(zhí)行
輸入yes,然后配置完成寥裂。

[@zw_22_90 src]# ./redis-trib.rb  create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK
Connecting to node 127.0.0.1:7005: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: 2022f24d581b4a7c3342e3245c32927cbd5ec16d 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: 37b7008f80f8c21a698da8cb1f1b32db8c0c415c 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
S: b5b76d70bbb0dbf3e7df8a38f1259e95e2054721 127.0.0.1:7003
   replicates 2022f24d581b4a7c3342e3245c32927cbd5ec16d
S: 6881f8fef9c25da486f320ebf2ead39c1502db4c 127.0.0.1:7004
   replicates 37b7008f80f8c21a698da8cb1f1b32db8c0c415c
S: f090526d32cced97731eef2a2e1722a7bac7d9ea 127.0.0.1:7005
   replicates ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 2022f24d581b4a7c3342e3245c32927cbd5ec16d 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: 37b7008f80f8c21a698da8cb1f1b32db8c0c415c 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
M: b5b76d70bbb0dbf3e7df8a38f1259e95e2054721 127.0.0.1:7003
   slots: (0 slots) master
   replicates 2022f24d581b4a7c3342e3245c32927cbd5ec16d
M: 6881f8fef9c25da486f320ebf2ead39c1502db4c 127.0.0.1:7004
   slots: (0 slots) master
   replicates 37b7008f80f8c21a698da8cb1f1b32db8c0c415c
M: f090526d32cced97731eef2a2e1722a7bac7d9ea 127.0.0.1:7005
   slots: (0 slots) master
   replicates ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

至此redis集群即搭建成功嵌洼!

驗(yàn)證集群

(1)連接任意一個客戶端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口號)如:/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.1.117 -p 700
(2)進(jìn)行驗(yàn)證:cluster info(查看集群信息)封恰、cluster nodes(查看節(jié)點(diǎn)列表)
(3)進(jìn)行數(shù)據(jù)操作驗(yàn)證
(4)關(guān)閉集群則需要逐個進(jìn)行關(guān)閉麻养,使用命令:
/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.1.117 -p 7001 shutdown

注意:當(dāng)出現(xiàn)集群無法啟動時,刪除臨時的數(shù)據(jù)文件诺舔,再次重新啟動每一個redis服務(wù)鳖昌,然后重新構(gòu)造集群環(huán)境。

集群操作混萝,動態(tài)添加減少節(jié)點(diǎn)等問題

redis集群操作主要命令:
create:構(gòu)建集群
fix:單點(diǎn)修復(fù)
check:集群驗(yàn)證
add-node:添加節(jié)點(diǎn)
del-node:刪除節(jié)點(diǎn)
reshard:重新分片
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遗遵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子逸嘀,更是在濱河造成了極大的恐慌车要,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崭倘,死亡現(xiàn)場離奇詭異翼岁,居然都是意外死亡类垫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門琅坡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悉患,“玉大人,你說我怎么就攤上這事榆俺∈墼辏” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵茴晋,是天一觀的道長陪捷。 經(jīng)常有香客問我,道長诺擅,這世上最難降的妖魔是什么市袖? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮烁涌,結(jié)果婚禮上苍碟,老公的妹妹穿的比我還像新娘。我一直安慰自己撮执,他們只是感情好微峰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著二打,像睡著了一般县忌。 火紅的嫁衣襯著肌膚如雪掂榔。 梳的紋絲不亂的頭發(fā)上继效,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機(jī)與錄音装获,去河邊找鬼瑞信。 笑死,一個胖子當(dāng)著我的面吹牛穴豫,可吹牛的內(nèi)容都是我干的凡简。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼精肃,長吁一口氣:“原來是場噩夢啊……” “哼秤涩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起司抱,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤筐眷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后习柠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匀谣,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡照棋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了武翎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烈炭。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宝恶,靈堂內(nèi)的尸體忽然破棺而出符隙,到底是詐尸還是另有隱情,我是刑警寧澤垫毙,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布膏执,位于F島的核電站,受9級特大地震影響露久,放射性物質(zhì)發(fā)生泄漏锥忿。R本人自食惡果不足惜丛版,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧般渡,春花似錦、人聲如沸杂腰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臊泰。三九已至蛉加,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缸逃,已是汗流浹背针饥。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留需频,地道東北人丁眼。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像昭殉,于是被迫代替她去往敵國和親苞七。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

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