首页 > 其他 > 详细

Redis集群搭建,添加,删除,《实验》

时间:2019-04-28 12:28:01      阅读:121      评论:0      收藏:0      [点我收藏+]
端口号: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
[root@db01 ~]# 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集群搭建,添加,删除,《实验》

原文:https://blog.51cto.com/13959927/2385622

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!