Redis的單機和集群搭建 偽分布式 二

2021-10-03 23:46:35 字數 3877 閱讀 9848

因為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...