因為redis的投票機制(投票過半認為某個節點掛了,那麼某個節點就掛了),節點數為單數,所以集群的話至少需要3個節點
為了保證資料的完整和高可用性,每個節點至少需要乙個備用節點,也就是3*2個節點
(本人不可能有六台電腦,也不可能有能同時開6個虛擬機器的電腦,所以還是和別人一樣,虛擬出6個實列 1001-1006)
1、建立集群的資料夾(redis-cluster)
mkdir redis-cluster
cd redis-cluster
mkdir -p redis01/data redis02/data redis03/data redis04/data redis05/data redis06/data
mkdir bin
除了第乙個data資料夾要建,剩餘的可建可不建,後面會直接複製redis01的所有檔案到其餘資料夾中,bin存放可複製的可執行檔案
2、複製單機中/redis/src裡的可執行檔案至bin中,即,帶綠色的那些檔案
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel redis-trib.rb /redis-cluster/bin
3、將單機的/redis的所有檔案複製在/redis-cluster/redis01中
cp -r /redis/* /redis-cluster/redis01 (-r 遞迴 )
4、修改redis01的redis.conf檔案如果想把6個節點的log檔案放在一起,修改redis.conf時把"logfile" 指定為統一路徑,並把redis01/log資料夾刪除
如果分開放,修改redis.conf的"logfile"路徑為/redis-cluster/redis01/log/redis-log.log (redis01為建立的6個資料夾的名稱)
bind 192.168.23.143 當前ip位址,因為是乙個虛擬機器,所有6個都是本機ip
port 1001 埠號,我的是1001至1006
dir /redis-cluster/redis01/data/(資料檔案存放位置,同樣:redis01為建立的6個資料夾的名稱)
pidfile /var/run/redis_1001.pid(1001和port要對應)
放開三個注釋:
cluster-enabled yes(啟動集群模式)
cluster-config-file nodes-1001.conf(1001和port要對應)
cluster-node-timeout 15000
5、將修改好的redis01複製到其餘建立好的資料夾中並修改redis.conf
cp -r /redis-cluster/redis01/* /redis-cluster/redis02
cp -r /redis-cluster/redis01/* /redis-cluster/redis03
cp -r /redis-cluster/redis01/* /redis-cluster/redis04
cp -r /redis-cluster/redis01/* /redis-cluster/redis05
cp -r /redis-cluster/redis01/* /redis-cluster/redis06
log如果放在一起無需修改,分開則修改/redis-cluster/redis01/log/redis-log.log
如log放在一起 需要修改3個埠號,乙個位址 共4處
如log分開放置 需要修改3個埠號,兩個位址 共5處
:%s///g
eg----> :%s/1001/1003/g (g為全部替換)
6、建立集群將6個redis啟動,現在他們還沒有任何聯絡,都是單獨的,現在將6個正在執行的redis融合成乙個集群
cd /redis-cluster/bin
./redis-cli --cluster create 192.168.23.143:1001 192.168.23.143:1002 192.168.23.143:1003 192.168.23.143:1004 192.168.23.143:1005 192.168.23.143:1006 --cluster-replicas 1
5.0以上版本的redis集群不再使用ruby來建立集群了,可以直接使用./redis-cli --cluster create ip:port ip:port … --cluster-replicas 1來建立 (–cluster-replicas 1:乙個主節點對應乙個從節點)
在此次命令完成後,系統會提示是否建立,輸入yes繼續
m:主節點 s:從節點,都能看到相應的port
每次開、關6個服務都浪費時間,所有可以在bin裡寫乙個指令碼,同時開關6個redis
1、開啟服務
cd /redis-cluster/bin
vim start-all.sh
在start-all.sh寫以下命令
cd /redis-cluster/bin
./redis-server ../redis01/redis.conf
./redis-server ../redis02/redis.conf
./redis-server ../redis03/redis.conf
./redis-server ../redis04/redis.conf
./redis-server ../redis05/redis.conf
./redis-server ../redis06/redis.conf
2、關閉服務
cd /redis-cluster/bin
vim stop-all.sh
在stop-all.sh寫以下命令(ip和port要寫自己的)
cd /redis-cluster/bin
./redis-cli -h 192.168.23.143 -p 1001 shutdown
./redis-cli -h 192.168.23.143 -p 1002 shutdown
./redis-cli -h 192.168.23.143 -p 1003 shutdown
./redis-cli -h 192.168.23.143 -p 1004 shutdown
./redis-cli -h 192.168.23.143 -p 1005 shutdown
./redis-cli -h 192.168.23.143 -p 1006 shutdown
給這兩個指令碼賦予執行許可權
chmod +x start-all.sh
chmod +x stop-all.sh
檢視它們變綠了就可以使用了
./start-all.sh
./stop-all.sh
Redis的單機和集群搭建
安裝步驟 0.yum install gcc 3 進入到redis 3.0.0目錄下,進行編譯 make 進入到src下進行安裝 make install 驗證 ll檢視src下的目錄,有redis server redis cil即可 5 建立倆個資料夾存放redis命令和配置檔案 mkdir p...
zookeeper 單機搭建偽集群
官網 1 建立目錄 cd usr local mkdir zookeeper cluster cd zookeeper cluster mkdir server1 cd server1 將解壓的zookeeper資料夾複製到當前目錄,並在當前目錄下建立 mkdir data mkdir datalo...
單機zookeeper偽集群搭建
2 zookeeper環境配置 解壓 tar zxvf zookeeper 3.4.12.tar.gz 將內容修改 zoo1.cfg檔案內容 ticktime 2000 initlimit 10 synclimit 5 datadir usr local zk data 1 clientport 2...