天天看點

redis 叢集_Redis三主三從叢集

Redis-Cluster采用無中心結構,每個節點儲存資料和整個叢集狀态,每個節點都和其他所有節點連接配接。

一組Redis Cluster是由多個Redis執行個體組成,官方推薦使用6執行個體,其中3個為主節點,3個為從節點。一旦有主節點發生故障的時候,Redis Cluster可以選舉出對應的從節點成為新的主節點,繼續對外服務,進而保證服務的高可用性。

redis 叢集_Redis三主三從叢集
redis 叢集_Redis三主三從叢集
redis 叢集_Redis三主三從叢集

1.png

部署環境:

IP位址 端口 角色 Redis版本
10.10.41.111 7000 redis-master 5.0.8
10.10.41.111 7001 redis-slave 5.0.8
10.10.41.112 7000 redis-master 5.0.8
10.10.41.112 7001 redis-slave 5.0.8
10.10.41.113 7000 redis-master 5.0.8
10.10.41.113 7001 redis-slave 5.0.8

1.安裝Redis

1、安裝C/C++環境

Redis編譯時需要使用C/C++環境:

yum install -y gcc gcc-c++ make

2、下載下傳Redis安裝包

下載下傳位址:http://download.redis.io/releases/

cd /data

wget http://download.redis.io/releases/redis-5.0.8.tar.gz

3、解壓、編譯

tar -zxvf redis-5.0.8.tar.gz

cd redis-5.0.8

make

4、建立Redis相關工作目錄(目錄可自定義)

mkdir /data/redis-cluster/{data/{redis_7000,redis_7001},conf,log} -p

5、複制redis配置檔案

cd redis-5.0.8

cp redis.conf /data/redis-cluster/conf/redis_7000.conf

cp redis.conf /data/redis-cluster/conf/redis_7001.conf

2.修改Redis配置檔案

1、修改redis-master配置檔案

vi /data/redis-cluster/conf/redis_7000.conf

port 7000             #修改redis監聽端口(可以自定義)

2、修改redis-slave配置檔案

vi  /data/redis-cluster/conf/redis_7001.conf   #修改redis-slave配置檔案,具體如下:

port 7001

3.分發到叢集其他伺服器

複制redis以及工作目錄到其他伺服器

scp -r redis-5.0.8 redis-cluster [email protected]:/data

scp -r redis-5.0.8 redis-cluster [email protected]:/data

設定軟連結,友善啟動redis服務

ln -s /data/redis-5.0.8/src/redis-server /usr/bin/redis-server

ln -s /data/redis-5.0.8/src/redis-cli /usr/bin/redis-cli

4.啟動Redis

叢集内每台伺服器分别啟動兩個redis

redis-server /data/redis-cluster/conf/redis_7000.conf

redis-server /data/redis-cluster/conf/redis_7001.conf

驗證是否啟動成功

ps -ef | grep redis

檢視版本

redis-cli --version

redis-server --version

5.建立Redis Cluster

注意:redis5.0以上叢集建立方式改為了C編寫的redis-cli建立,不用再安裝麻煩的ruby。

建立叢集,--cluster-replicas 1指定從庫數量1,建立順序三主-三從。即主-主-主-從-從-從。

如果redis設定了密碼,則建立叢集時需要添加密碼資訊 -a 密碼:

redis-cli -a 123456 --cluster create 10.10.41.111:7000 10.10.41.112:7000 10.10.41.113:7000 10.10.41.111:7001  10.10.41.112:7001  10.10.41.113:7001 --cluster-replicas 1

redis 叢集_Redis三主三從叢集

2.png

确認叢集配置資訊,确認無誤則輸入 yes 并按回車

redis 叢集_Redis三主三從叢集

3.png

出現以上資訊,表示叢集配置成功。

6驗證叢集Redis-Cluster

1、登入redis叢集

redis-cli -a 123456 -h 10.10.41.111 -p 7000 -c-a Redis密碼,-c表示叢集模式 ,指定IP和端口

注意:可能會redirected進入到其它server

2、驗證叢集資訊

10.10.41.111:7000> cluster info      #檢視叢集資訊

redis 叢集_Redis三主三從叢集

4.png

10.10.41.111:7000> cluster nodes    #檢視叢集節點清單

redis 叢集_Redis三主三從叢集

5.png

檢視叢集内主從關系:

redis-cli -a 123456 -h 10.10.41.111 -p 7000 -c cluster slots | xargs  -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq

3、進行資料驗證操作

插入資料:

10.10.41.111:7000> set mykey "Hello Redis"

10.10.41.113:7000> get mykey

登入其他節點檢視資料:

redis-cli -a 123456 -h 10.10.41.112 -p 7000 -c

10.10.41.112:7000> get mykey

4、驗證叢集故障轉移

将其中一個redis-master停止掉後、其對應的slave節點會被選舉為master節點,舊master節點重新恢複時,其角色會成為slave。具體可自行驗證,驗證時可開啟日志檢視相關資訊。

繼續閱讀