Redis 叢集搭建
1.環境:
centos6.7、redis-6.2.6
2.模式:
5主+20叢+5備叢(即:1主-4從-1備叢)
3.伺服器環境檢查及安裝
檢視伺服器是否安裝了gcc
rpm -q gcc
若沒有安裝,則進行gcc安裝
yum install -y gcc
4.redis下載
前往redis官網下載https://redis.io/download
redis-6.2.6.tar.gz
5.將redis-6.2.6.tar.gz上傳至伺服器/soft資料夾(可其他資料夾)
6.解壓redis-6.2.6.tar.gz
tar -zxvf redis-6.2.6.tar.gz
7.安裝
cd /soft/redis-6.2.6 make make PREFIX=/usr/local/redis install
8.建立主從資料夾
mkdir -p /soft/redis/redis-cluster/8001 /soft/redis/redis-cluster/8002 /soft/redis/redis-cluster/8003 /soft/redis/redis-cluster/8004 /soft/redis/redis-cluster/8005
9.將預設配置複製到8001
cp /soft/redis-6.2.6/redis.conf /soft/redis/redis-cluster/8001
10.修改配置引數
port 8001 daemonize yes pidfile "/var/run/redis_8001.pid" #指定資料檔案存放位置,必須要指定不同的目錄位置,不然會丟失資料 dir /soft/redis/redis-cluster/8001/ #啟動叢集模式 cluster-enabled yes #叢集節點資訊檔案,這裡800x最好和port對應上 cluster-config-file nodes-8001.conf # 節點離線的超時時間 cluster-node-timeout 5000 #去掉bind繫結訪問ip資訊 #bind 127.0.0.1 #關閉保護模式 protected-mode no #啟動AOF檔案 appendonly yes #如果要設定密碼需要增加如下配置: #設定redis訪問密碼 requirepass redis-pw #設定叢集節點間訪問密碼,跟上面一致 masterauth redis-pw
11.將8001的配置檔案複製到8002(8003、8004、8005同理)
cp /soft/redis/redis-cluster/8001/redis.conf /soft/redis/redis-cluster/8002
12.批量修改8002配置檔案(8003、8004、8005同理)
cd /soft/redis/redis-cluster/8002/ vim redis.conf :%s/8001/8002/g
13.啟動redis服務
/soft/redis-6.2.6/src/redis-server /soft/redis/redis-cluster/8001/redis.conf /soft/redis-6.2.6/src/redis-server /soft/redis/redis-cluster/8002/redis.conf /soft/redis-6.2.6/src/redis-server /soft/redis/redis-cluster/8003/redis.conf /soft/redis-6.2.6/src/redis-server /soft/redis/redis-cluster/8004/redis.conf /soft/redis-6.2.6/src/redis-server /soft/redis/redis-cluster/8005/redis.conf
redis可多程序啟動
14.其他伺服器均按照上述步驟進行安裝、配置、啟動服務
15.叢集配置開啟:
叢集的配置開啟有兩種方式:
15-1.自動分配主從關係(較簡單):
/soft/redis-6.2.6/src/redis-cli -a redis-pw --cluster create --cluster-replicas 5 **.**.**.33:8001 **.**.**.33:8002 **.**.**.33:8003 **.**.**.33:8004 **.**.**.33:8005 **.**.**.34:8001 **.**.**.34:8002 **.**.**.34:8003 **.**.**.34:8004 **.**.**.34:8005 **.**.**.36:8001 **.**.**.36:8002 **.**.**.36:8003 **.**.**.36:8004 **.**.**.36:8005 **.**.**.37:8001 **.**.**.37:8002 **.**.**.37:8003 **.**.**.37:8004 **.**.**.37:8005 **.**.**.38:8001 **.**.**.38:8002 **.**.**.38:8003 **.**.**.38:8004 **.**.**.38:8005 **.**.**.39:8001 **.**.**.39:8002 **.**.**.39:8003 **.**.**.39:8004 **.**.**.39:8005
-a :密碼
--cluster-replicas 1:表示1個master下掛1個slave; --cluster-replicas 2:表示1個master下掛2個slave
這種模式下,主從關係為自動分配
不能充分發揮多臺伺服器高可用的效能
15-2.手動分配主從關係
建立5個主分支
/soft/redis-6.2.6/src/redis-cli -a redis-pw --cluster create **.**.**.33:8001 **.**.**.34:8001 **.**.**.36:8001 **.**.**.37:8001 **.**.**.38:8001 --cluster-replicas 0
手動將每個叢分支加到制定的主分支下
/soft/redis-6.2.6/src/redis-cli -a redis-pw --cluster add-node **.**.**.33:8002 **.**.**.33:8001 --cluster-slave --cluster-master-id 0f22951a5acfab105eba1a8c52296fa5b256cbb4
add-node:叢分支
--cluster-master-id:對應主分支的master-id
16.驗證叢集
連線叢集
/soft/redis-6.2.6/src/redis-cli -a redis-pw -c -h **.**.**.33 -p 8001
檢視叢集資訊
cluster info
cluster_slots_ok:槽位
cluster_size:數量
檢視叢集節點資訊
cluster nodes
master即為主節點
slave即為叢節點,後面接的是主節點master-id
17.關閉叢集
將所有服務下的所有redis程序關閉
- 可以通過shutdown
/soft/redis-6.2.6/src/redis-cli -a redis-pw -c -h **.**.**.33 -p 8001 shutdown
- 可以直接殺掉相關程序
ps -ef | grep redis pkill -9 redis
18.重新配置叢集
關閉所有集群后,刪除各資料夾下的檔案(redis.conf除外)
按照叢集啟動步驟重新啟動即可
19.叢集測試
可以針對性停止相關節點程序
或者直接重啟某些伺服器
通過叢集節點命令,檢視主從是否自動進行切換
20.叢集效能測試
/soft/redis-6.2.6/src/redis-benchmark -a redis-pw -h **.**.**.33 -p 8001 -c 100 -n 100000 --cluster -q