1. 程式人生 > 其它 >Redis 叢集搭建

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