注意:可以查看Redis官網查看集群搭建方式,連接如下
https://redis.io/topics/cluster-tutorial
集群中應該至少有三個節點,每個節點有一備份節點。需要6台服務器。
如果條件有限,可以搭建偽分布式,以下步驟是在一台 Linux 服務器上搭建有6個節點的 Redis集群。
准備工作:安裝依賴包
[root@localhost ~]#yum install -y gcc g++ make gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim unzip git
1.創建目錄並進入
命令:mkdir /usr/local/redis-cluster
命令:cd /usr/local/redis-cluster
2.下載源碼包並解包編譯安裝
命令:wget http://download.redis.io/releases/redis-5.0.5.tar.gz #安裝redis5.0.5版本
命令:tar -zvxf redis-5.0.5.tar.gz #解包
3.進入redis目錄里,開始編譯並安裝
命令:cd redis-5.0.5 #進入目錄里如果有這個Makefile就可以編譯安裝了
命令:make #編譯
命令:make install PREFIX=/usr/local/redis #編譯安裝並將redis放在/usr/local/redis下,這樣就可以直接使用redis
好了,現在redis已經安裝成功
4.創建6個redis配置文件(注意:6個配置文件不能放在同一個目錄之內)
命令:[root@localhost redis-5.0.5]# cp /usr/local/redis-cluster/redis-5.0.5/redis.conf /usr/local/redis/bin
命令:[root@localhost redis-5.0.5]# cd /usr/local/redis
命令:[root@localhost redis]# cp -r /usr/local/redis/bin /usr/local/redis-cluster/redis01
命令:[root@localhost redis]# cd /usr/local/redis-cluster/redis01
命令:[root@localhost redis01]# vim redis.conf #修改配置文件
配置文件的修改路徑為:
1)port 7001 #端口
2)cluster-enabled yes #啟用集群模式
3)cluster-config-file nodes.conf #設置對應端口,不輸入的話就是默認port端口
4)cluster-node-timeout 5000 #超時時間
5)appendonly yes #開啟持久化模式
6)daemonize yes #后台運行
7)protected-mode no #非保護模式
8)pidfile /var/run/redis_7001.pid #防止啟動多個進程副本,只啟動7001
(知識擴展:進程運行后會給.pid文件加一個文件鎖,只有獲得該鎖的進程才有寫入權限(F_WRLCK),
把自身的pid寫入該文件中,其他試圖獲得該鎖的進程會自動退出。)
9)bind 172.20.10.7 #127.0.0.1改為本機ip地址,可用 ifconfig 或 ip a 查看ip
這樣配置文件就已經做好了,接下來保存退出,然后創建其他5個節點
5.創建其他5個節點
命令:cd /usr/local/redis-cluster/ #進入redis目錄下
[root@localhost redis-cluster]# cp -r redis01 redis02
[root@localhost redis-cluster]# cp -r redis01 redis03
[root@localhost redis-cluster]# cp -r redis01 redis04
[root@localhost redis-cluster]# cp -r redis01 redis05
[root@localhost redis-cluster]# cp -r redis01 redis06 #將配置目錄復制5份
然后修改配置文件:分別修改redis02 ~ redis06 的 redis.conf下的port 和 pidfile
修改內容:
1)port 7001
2)pidfile /var/run/redis_7001.pid
6.啟動節點
有兩種方法啟動
命令:cd /usr/local/redis-cluster
1)分別進入redis01、redis02、...redis06目錄,執行: ./redis-server ./redis.conf
2)做一個腳本執行 start-all.sh
腳本內容如下:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
然后添加權限執行腳本就行了
命令:chmod u+x start-all.sh #給腳本添加權限
命令:./start-all.sh
然后順便看一下節點是否啟動成功
命令:ps aux | grep redis
7.啟動集群
因為我們使用的5.0.0以上的版本的Redis搭建的集群只需要把編譯后的redis目錄中的這個redis-cli文件拷貝到redis-cluster目錄過來就可以了
至於redis-cli在/usr/local/redis-cluster/redis-5.0.5/src下就可以找到,然后復制到/usr/local/redis-cluster下就可以了
命令:cp -r /usr/local/redis-cluster/redis-5.0.5/src/redis-cli /usr/local/redis-cluster
命令:/usr/local/redis-cluster/redis-cli --cluster create 192.168.100.248:7001 192.168.100.248:7002 192.168.100.248:7003 192.168.100.248:7004
192.168.100.248:7005 192.168.100.248:7006 --cluster-replicas 1 #啟動命令(注意:根據自己的IP啟動)
到這個地方,就做完了redis集群啟動成功
8.集群的操作
關閉集群,在create-cluster目錄下編寫腳本文件:vim shutdown.sh
腳本內容如下:
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7001 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7002 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7003 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7004 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7005 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7006 shutdown
然后給腳本添加權限並執行此文件
命令:chmod u+x shutdown.sh
命令:./shutdown.sh
查看redis集群狀態
命令:ps aux|grep redis
知識擴展:
官方:/usr/local/redis-cluster/redis-cli -a xxx -c -h 192.168.100.248 -p 7001
提示:-a訪問服務端密碼,-c表示集群模式,-h指定ip地址,-p指定端口號
9.重新啟動集群
在start-all.sh腳本的最后添加/usr/local/redis-cluster/redis-cli --cluster create 192.168.100.248:7001 192.168.100.248:7002 192.168.100.248:7003
192.168.100.248:7004 192.168.100.248:7005 192.168.100.248:7006 --cluster-replicas 注意:使用自己本機的IP
然后執行腳本就可以了
命令:./start-all.sh
10.測試集群
在redis-cluster目錄下執行
命令:redis01/redis-cli -h 192.168.100.248 -p 7002 -c (注意:用自己的IP)
命令:cluster nodes #查詢集群結點信息
命令:cluster info # 查詢集群狀態信息
(知識擴展:設置主從密碼)
需要在redis01~redis06的配置文件里redis.conf修改這兩行
masterauth 123456 #主從密碼
requirepass 123456 #訪問密碼
然后重啟服務
測試:
命令:redis01/redis-cli -h 192.168.100.248 -p 7002 -c
192.168.100.248:7001> cluster nodes #這個時候命令不能用
NOAUTH Authentication required
192.168.1.181:7001> auth 123456 #輸入密碼,看見“OK”就可以了
OK
192.168.1.181:7001> cluster nodes #這個時候命令就可以用了
總結:。。。。。。。。。。。。。。。。。(此處省略一萬字)