A4-2-Linux下 Redis 集群使用(二)
A4-2-Linux下 Redis 集群使用(二)
集群操作
一、查看集群信息
- cluster info 查看集群状态,槽分配,集群大小等
- cluster nodes 也可查看主从节点。
- ./redis-cli --cluster check 10.0.0.12:20003 检查
二、新增节点
1、新增主节点
创建新实例
cd /usr/local/redis-cluster
cp -r redis-02 reids-08
sed -i -e "s\pidfile /var/run/redis_6379.pid/pidfile /var/run/redis_30008.pid\g" /usr/local/redis-cluster/redis-08/redis.conf
sed -i -e "s\redis-02.log\redis-08.log\g" /usr/local/redis-cluster/redis-08/redis.conf
sed -i -e "s\30002\30008\g" /usr/local/redis-cluster/redis-08/redis.conf
sed -i -e "s\nodes-02.conf\nodes-08.conf\g" /usr/local/redis-cluster/redis-08/redis.conf
将实例加入集群
参考:https://www.cnblogs.com/shiguotao-com/p/10078379.html
./redis-cli --cluster add-node 10.0.0.13:30008 10.0.0.13:30006
分配hash槽
参考:https://www.cnblogs.com/shiguotao-com/p/10078517.html
参考:https://www.cnblogs.com/yanwei-wang/p/5527453.html
随便连接到集群
./redis-cli --cluster reshard 10.0.0.13:30008
检查 可发现平均分配共300槽点给了10.0.0.13:30008
2、添加从节点
创建实例redis-10
cd /usr/local/redis-cluster
cp -r redis-08 reids-10
cd reids-10/
rm -f dump.rdb
rm -f nodes-08.conf
sed -i -e "s\pidfile /var/run/redis_30008.pid\pidfile /var/run/redis_30010.pid\g" /usr/local/redis-cluster/redis-10/redis.conf
sed -i -e "s\redis-08.log\redis-10.log\g" /usr/local/redis-cluster/redis-10/redis.conf
sed -i -e "s\30008\30010\g" /usr/local/redis-cluster/redis-10/redis.conf
sed -i -e "s\nodes-08.conf\nodes-10.conf\g" /usr/local/redis-cluster/redis-10/redis.conf
启动
添加进集群步骤与主节点一样
./redis-cli --cluster add-node 10.0.0.13:30010 10.0.0.13:30006
查看集群信息
将其变为从节点,就给之前的30008吧
参考:https://www.cnblogs.com/hopeofthevillage/p/11535683.html
CLUSTER REPLICATE <30008即指定主节点的ID>
CLUSTER REPLICATE 5499e3ecdbe3eb14dcba76682f334c9cb117d038
三、删除节点
参考:https://www.cnblogs.com/yanwei-wang/p/5527453.html
参考:https://blog.****.net/hw120219/article/details/97006366
1、删除从节点
redis-cli --cluster del-node <集群中随便一个节点> <目标从节点ID>
删除10.0.0.13:30010
查看节点ID: ./redis-cli --cluster check 10.0.0.13:30008
删除节点
redis-cli --cluster del-node 10.0.0.13:30008 d813052b44a9315c4a57f038ac1b189903f24281
再查看已经没有了
2、删除主节点
- 如果主节点有从节点,将从节点转移到其他主节点
- 如果主节点有slot,去掉分配的slot,然后在删除主节点
从节点转移:(将30010再次添加至30008。需要将30010在集群中的配置清除)
转移从节点30010
好吧,重新指向就行了。。。┭┮﹏┭┮
去掉slot
./redis-cli --cluster reshard <要去掉slot的节点>。。。。其实更分配时一样,只不过在分配时指定的是自己罢了
./redis-cli --cluster reshard 10.0.0.13:30008
确认后填入yes
检查,已将槽点清空
再删除即可
./redis-cli --cluster del-node 10.0.0.12:20001 5499e3ecdbe3eb14dcba76682f334c9cb117d038
四、总结
从上面过程可以看出,添加节点、分配槽、删除节点的过程,不用停止集群,不阻塞集群的其他操作。命令小结
查看节点
> cluster info 查看集群状态,槽分配,集群大小等
cluster info
> cluster nodes 也可查看主从节点。
cluster nodes
./redis-cli --cluster check 10.0.0.12:20003 检查
./redis-cli --cluster check 10.0.0.12:20003
#向集群中添加节点,10.0.0.13:30008是新增节点,10.0.0.12:20001是集群中已有的节点
./redis-cli --cluster add-node 10.0.0.13:30008 10.0.0.12:20001
#重新分配槽
./redis-cli --cluster reshard 10.0.0.13:30008
#指定当前节点的主节点(主节点ID)
> cluster replicate cf48228259def4e51e7e74448e05b7a6c8f5713f
#删除节点(节点ID)
./redis-cli --cluster del-node 10.0.0.12:20001 5499e3ecdbe3eb14dcba76682f334c9cb117d038
到此,redis的集群搭建、分区原理、集群增加节点以及删除节点的主要内容已经简要介绍完毕。