1. 程式人生 > >Redis集群搭建,添加,刪除,《實驗》

Redis集群搭建,添加,刪除,《實驗》

har -i 啟動 .org dir replica end ted 註釋

端口號:7000-7005
第一步:

EPEL源安裝ruby支持
yum install ruby rubygems -y

第二步:
使用國內源 : 查看 替換 刪除 查看 安裝
gem sources -l

gem sources -a http://mirrors.aliyun.com/rubygems/

gem sources --remove https://rubygems.org/

gem sources -l

gem install redis -v 3.3.3

第三步:
集群節點準備

mkdir /data/700{0..5}

cat > /data/7000/redis.conf <<EOF

port 7000
daemonize yes
pidfile /data/7000/redis.pid
loglevel notice
logfile "/data/7000/redis.log"
dbfilename dump.rdb
dir /data/7000
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

cat >> /data/7001/redis.conf <<EOF
port 7001
daemonize yes
pidfile /data/7001/redis.pid

loglevel notice
logfile "/data/7001/redis.log"
dbfilename dump.rdb
dir /data/7001
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

cat >> /data/7002/redis.conf <<EOF
port 7002
daemonize yes
pidfile /data/7002/redis.pid
loglevel notice
logfile "/data/7002/redis.log"

dbfilename dump.rdb
dir /data/7002
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

cat >> /data/7003/redis.conf <<EOF
port 7003
daemonize yes
pidfile /data/7003/redis.pid
loglevel notice
logfile "/data/7003/redis.log"
dbfilename dump.rdb
dir /data/7003
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

cat >> /data/7004/redis.conf <<EOF
port 7004
daemonize yes
pidfile /data/7004/redis.pid
loglevel notice
logfile "/data/7004/redis.log"
dbfilename dump.rdb
dir /data/7004
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

cat >> /data/7005/redis.conf <<EOF
port 7005
daemonize yes
pidfile /data/7005/redis.pid
loglevel notice
logfile "/data/7005/redis.log"
dbfilename dump.rdb
dir /data/7005
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

====================================================
啟動節點:

redis-server /data/7000/redis.conf
redis-server /data/7001/redis.conf
redis-server /data/7002/redis.conf
redis-server /data/7003/redis.conf
redis-server /data/7004/redis.conf
redis-server /data/7005/redis.conf
[[email protected] ~]# ps -ef |grep redis
root 8854 1 0 03:56 ? 00:00:00 redis-server :7000 [cluster]
root 8858 1 0 03:56 ? 00:00:00 redis-server
:7001 [cluster]
root 8860 1 0 03:56 ? 00:00:00 redis-server :7002 [cluster]
root 8864 1 0 03:56 ? 00:00:00 redis-server
:7003 [cluster]
root 8866 1 0 03:56 ? 00:00:00 redis-server :7004 [cluster]
root 8874 1 0 03:56 ? 00:00:00 redis-server
:7005 [cluster]

===============================================================
、將節點加入集群管理:
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

、集群狀態查看
集群主節點狀態
redis-cli -p 7000 cluster nodes | grep master
集群從節點狀態
redis-cli -p 7000 cluster nodes | grep slave

=================================================
增加新的節點: 一主一從

mkdir /data/7006 主
mkdir /data/7007 從

cat > /data/7006/redis.conf <<EOF
port 7006
daemonize yes
pidfile /data/7006/redis.pid
loglevel notice
logfile "/data/7006/redis.log"
dbfilename dump.rdb
dir /data/7006
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

cat > /data/7007/redis.conf <<EOF
port 7007
daemonize yes
pidfile /data/7007/redis.pid
loglevel notice
logfile "/data/7007/redis.log"
dbfilename dump.rdb
dir /data/7007
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
EOF

啟動6-7
redis-server /data/7006/redis.conf
redis-server /data/7007/redis.conf

添加主節點:6

redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
#######添加後需要重新分片
redis-trib.rb reshard 127.0.0.1:7000
一共16384,需要分16384/4=4096 給 6 節點
接受節點是 6 節點的ID號 06f368e566e3c039e7c2fb98acead603d1d471e3
發送節點是 全部 all
yes 是接受計劃,查看下,是否成功!

添加從節點: 7
##註意:是主節點添加 從節點, 這裏就要寫主點的 6 的ID號
redis-trib.rb add-node --slave --master-id 06f368e566e3c039e7c2fb98acead603d1d471e3 127.0.0.1:7007 127.0.0.1:7000

這就完事了,主節點和從節點,都添加完成了。

刪除主節點6 :
刪除一個節點
刪除master節點之前首先要使用reshard移除master的全部slot,然後再刪除當前節點
註釋;節點6 有4096槽位 平均分給 0 1 2 這三個節點
0節點是 1365
1節點是 1366
2節點是 1365


redis-trib.rb reshard 127.0.0.1:7000
第一次是0節點 1365
第一次 接受節點的ID 是0的
發送節點的ID 是6 的
done 完成
yes 執行計劃

redis-trib.rb reshard 127.0.0.1:7000
第二次是1節點 1366
第二次 接受節點的ID 是1的
發送節點的ID 是6 的
done 完成
yes 執行計劃

redis-trib.rb reshard 127.0.0.1:7000
第三次是2節點 1365
第三次 接受節點的ID 是2的
發送節點的ID 是6 的
done 完成
yes 執行計劃

移除完畢,才能刪除:
redis-trib.rb del-node 127.0.0.1:7006 06f368e566e3c039e7c2fb98acead603d1d471e3
檢查:
redis-cli -p 7000 cluster nodes | grep master
沒有6這個主節點了。

Redis集群搭建,添加,刪除,《實驗》