redis集群配置參數(shù):
cluster-enabled :yes/no奄妨。是否啟用redis集群支持,默認(rèn)作為獨(dú)立的redis實(shí)例啟動(dòng)柠偶。
cluster-config-file:filename。不可編輯文件练般,redis用來在持久化集群配置信息以便在每次啟動(dòng)都能讀取面粮。文件中列出集群當(dāng)中所有的節(jié)點(diǎn)毅臊,狀態(tài),持久化變量饿序。由于某些消息接收勉失,通常會(huì)將此文件重寫并刷新到磁盤上。
cluster-node-timeout:milliseconds原探。節(jié)點(diǎn)連接超時(shí)時(shí)間乱凿。
cluster-slave-validity-factory:factor。如果設(shè)置為0咽弦,slave總會(huì)故障轉(zhuǎn)移到master上徒蟆,不管master和slave之間還有多少連接。如果設(shè)置為正數(shù)型型,會(huì)根據(jù)超時(shí)間和該值相乘計(jì)算最長(zhǎng)斷開時(shí)間段审。例如超時(shí)時(shí)間設(shè)置為5,factory設(shè)置為10闹蒜,則最長(zhǎng)斷開時(shí)間九尾50秒寺枉,超過50秒后就不會(huì)再嘗試故障轉(zhuǎn)移到該臺(tái)master。
cluster-migration-barrier:count绷落。master可以連接的最小slave姥闪。
cluster-require-full-coverage:yes/no。默認(rèn)值為yes砌烁,如果一些key空間一直都沒被任何節(jié)點(diǎn)覆蓋的時(shí)候集群停止接受寫入請(qǐng)求筐喳。
最小化的redis集群配置文件如下:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
測(cè)試建立一個(gè)redis 集群,共6個(gè)redis實(shí)例函喉,3個(gè)作為master避归,3個(gè)作為slave。
在redis目錄下創(chuàng)建6個(gè)目錄函似,以端口號(hào)創(chuàng)建為目錄名稱槐脏,作為redis實(shí)例所在目錄喉童。在redis每個(gè)redis中修改redis.conf配置文件撇寞,修改如上配置信息顿天。使用如下命令創(chuàng)建redis集群,測(cè)試服務(wù)器的地址為192.168.152.133
./redis-trib.rb create --replicas 1 192.168.152.133:7000 192.168.152.133:7001 192.168.152.133:7002 192.168.152.133:7003 192.168.152.133:7004 192.168.152.133:7005
執(zhí)行過程中肯定會(huì)出現(xiàn)異常情況蔑担,需要安裝ruby依賴牌废。使用源碼的方式安裝,從https://www.ruby-lang.org/en/downloads/該鏈接中下載對(duì)應(yīng)版本的安裝包啤握,上傳到制定目錄鸟缕。
//解壓文件
#tar -zxvf ruby-2.5.3.tar.gz
#cd ruby-2.5.3
#./configure
#make
#make install
默認(rèn)情況下安裝在/usr/local/lib/下,為了能夠在path中找到排抬,徐將ruby添加到path當(dāng)中懂从。完成后安裝gem redis依賴,安裝之前需安裝zlib-dev依賴
#yum install zlib-devel
安裝完成后進(jìn)入 /usr/bin/ruby/ruby-2.5.3/ext/zlib執(zhí)行如下命令:
#ruby ./extconf.rb
#make
#make intall
執(zhí)行過程中如果出現(xiàn):make: *** No rule to make target /include/ruby.h', needed by
zlib.o'. Stop蹲蒲。則按照如下方法操作:
vi /usr/bin/ruby/ruby-2.5.3/ext/zlib/Makefile
//替換如下內(nèi)容
#zlib.o: $(top_srcdir)/include/ruby.h
zlib.o: ../../include/ruby.h
最后執(zhí)行g(shù)em install redis完成安裝番甩。在創(chuàng)建集群的時(shí)候不能使用域名或則hostname,需使用ip地址届搁。
集群創(chuàng)建完成后使用命令檢查節(jié)點(diǎn)狀態(tài):
./redis-trib.rb check ip:port
如果檢查結(jié)果不是OK缘薛,可以使用命令進(jìn)行修復(fù)
./redis-trib.rb fix ip:port
添加slave節(jié)點(diǎn):
1,使用add-node子命令添加一個(gè)節(jié)點(diǎn)
./redis-trib.rb add-node new_node_ip:port master_ip:port
2卡睦,連接新節(jié)點(diǎn)
./redis-trib.rb -h ip -p port
3宴胧,創(chuàng)建復(fù)制
cluster repliate master_node_id
刪除slave節(jié)點(diǎn)
./redis-trib.rb del-node ip:port "node_id"