redis版本:redis-5.0.3.tar.gz
操作系統:完全新安裝的centos7.6系統
使用一台虛擬機模擬6個redis節點,3個master,3個slave,虛擬機IP為192.168.220.11
和使用不同的IP創建集群基本過程一致,為了方便,就不創建多個虛擬機了。
開始搭建:
yum install -y wget gcc
systemctl stop firewalld.service
systemctl disable firewalld.service
cd /opt
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar zxvf redis-5.0.3.tar.gz
mv redis-5.0.3 redis
cd redis
解壓后目錄結構如下:

編譯安裝:
make MALLOC=libc make install

src目錄包含了redis server和redis cli的相關命令腳本,將該路徑加入到PATH環境變量當中,方便使用
cd /opt/redis
mkdir cluster # 創建redis實例根目錄
cd cluster
mkdir 7001 # 創建具體redis實例相關目錄,指定其端口號為7001
cd 7001
cp /opt/redis/redis.conf . #復制配置文件,修改之后當作當前redis實例的啟動配置
mkdir data # 創建數據存儲目錄
修改配置文件文件,最小化修改配置
下面為需要修改的配置項以及說明
port 7001 # 客戶端連接端口
bind 192.168.220.11 #實例綁定的IP地址
dir /opt/redis/cluster/7001/data # redis實例數據配置存儲位置
daemonize yes # 是否以后台進程的方式啟動redis實例
pidfile pidfile /var/run/redis_7001.pid # 指定該進程pidfile
cluster-enabled yes # 開啟集群模式
cluster-config-file # 集群中該實例的配置文件,該文件會在data目錄下生成
appendonly yes # 開啟aop日志
protected-mode no # 關閉保護模式
requirepass cyclone # master開啟密碼保護
masterauth cyclone # replica同master交互密碼
接下來按照同樣的方式創建7002,7003,7004,7005,7006的文件夾,修改配置文件
依次啟動redis實例
redis-server /opt/redis/cluster/7001/redis.conf
redis-server /opt/redis/cluster/7002/redis.conf
redis-server /opt/redis/cluster/7003/redis.conf
redis-server /opt/redis/cluster/7004/redis.conf
redis-server /opt/redis/cluster/7005/redis.conf
redis-server /opt/redis/cluster/7006/redis.conf
查看啟動結果

集群的創建,將redis實例聯系起來,創建一個集群
redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006
輸出如下:


一些slave和master在相同的物理主機上,所以會出現一些警告,這個不影響。
連接到集群的某個節點:
redis-cli -a cyclone -c -h 192.168.220.11 -p 7001

查看集群相關信息:

查看集群節點信息:

集群相關操作:
1.關閉集群的某個節點,比如關閉端口號為7001的實例:
redis-cli -a cyclone -c -h 192.168.220.11 -p 7001 shutdown
查看結果

關閉之后,使用redis-server /opt/redis/cluster/7001/redis.conf命令可以將實例重新啟動,啟動完成之后,自動加入到集群當中

2.集群的關閉
逐個關閉redis實例進程即可
查找redis實例進程號
ps -ef | grep redis

關閉redis進程,使用kill -9 ${進程號},如果需要關閉多個進程,進程號之間空格隔開即可
kill -9 10252 10257 10262 10267 10272 10294
也可執行以下命令來關閉redis進程
pkill -9 redis
3.redis集群的重新啟動
保留原來的數據:
逐個關閉redis實例,再逐個的啟動即可。
丟棄原來的數據:
關閉實例,清空實例中數據存放目錄的所有內容,然后逐個啟動實例,在任意一個實例上執行集群的創建命令即可,本質上就是創建一個新的集群
清空數據存儲目錄內容:
rm -rf /opt/redis/cluster/7001/data/* rm -rf /opt/redis/cluster/7002/data/* rm -rf /opt/redis/cluster/7003/data/* rm -rf /opt/redis/cluster/7004/data/* rm -rf /opt/redis/cluster/7005/data/* rm -rf /opt/redis/cluster/7006/data/*
啟動實例:
redis-server /opt/redis/cluster/7001/redis.conf
redis-server /opt/redis/cluster/7002/redis.conf
redis-server /opt/redis/cluster/7003/redis.conf
redis-server /opt/redis/cluster/7004/redis.conf
redis-server /opt/redis/cluster/7005/redis.conf
redis-server /opt/redis/cluster/7006/redis.conf
執行集群創建命令:
redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006