添加主节点
配置文件 7007 /redis.conf
启动
在添加之前首先要像 7001-6 一样,修改配置文件,启动 7007 服务/usr/redis/bin/redis-cli --cluster add-node 192.168.206.131:7007 192.1 68.206.131:7002前面的 IP 加端口号是要添加的 redis 节点,后面的 IP 和端口号是集群中的任意一个节点。
配置从节点
添加从节点之前需要设置从节点并启动节点
创建一个7008从节点
--cluster-master-id 为从节点对应主节点的id
/usr/java/redis/bin/redis-cli --cluster add-node 192.168.206.131:7008 192.168.206.131:7002 --cluster-slave --cluster-master-id 67211a02cffe48ee7197092ca48e9e7294dc5961
添加的主节点还不能使用,因为没有分配slots
重新分配slots
/usr/java/redis/bin/redis-cli --cluster reshard 192.168.206.131:7002
all 代表从所有有数据据节点进行迁移到目的节点,也可以选择 目标节点 id 回车,最后以 done进行结束done 代表结束
删除节点
--cluster del-node 集群 节点id
删除主节点需要先使用 reshard 把主节点的slots移到其他节点才可以
/usr/java/redis/bin/redis-cli --cluster del-node 192.168.159.34:7002 6721 1a02cffe48ee7197092ca48e9e7294dc5961
故障检测
验证集群是否生效
:
关闭一个主节点查看对应的备用节点是不是能够顶替主节点成为主节点存/取数据的时候查看对应的端口号
(关闭主节点以后需要耐心等待一会儿 让他重新分配一下空间)
/usr/java/redis/bin/redis-cli -h 192.168.159.34 -p 7001 shutdown
查看主从关系
关闭7001
查看7004是否成为了主节点
7001重新启动
变为了从机
添加数据测试一下集群
一键启动脚本 一键关闭脚本
touch my-start-stop.sh
#! /bin/shl=`ps -ef|grep -w redis|grep -v grep|wc -l`if [ $l == 0 ]thenecho "redis 还没有启动,开始启动。。。。 "/usr/java/redis/bin/redis-server /usr/java/redis_cluster/7001/redis.conf/usr/java/redis/bin/redis-server /usr/java/redis_cluster/7002/redis.conf/usr/java/redis/bin/redis-server /usr/java/redis_cluster/7003/redis.conf/usr/java/redis/bin/redis-server /usr/java/redis_cluster/7004/redis.conf/usr/java/redis/bin/redis-server /usr/java/redis_cluster/7005/redis.conf/usr/java/redis/bin/redis-server /usr/java/redis_cluster/7006/redis.confecho " 启动成功。。。。。。。。。 "elseecho "redis 已经启动,开始关闭 ******************************"/usr/java/redis/bin/redis-cli -h 127.0.0.1 -p 7001 shutdown/usr/java/redis/bin/redis-cli -h 127.0.0.1 -p 7002 shutdown/usr/java/redis/bin/redis-cli -h 127.0.0.1 -p 7003 shutdown/usr/java/redis/bin/redis-cli -h 127.0.0.1 -p 7004 shutdown/usr/java/redis/bin/redis-cli -h 127.0.0.1 -p 7005 shutdown/usr/java/redis/bin/redis-cli -h 127.0.0.1 -p 7006 shutdownecho " 关闭成功 ****************************************"fi
集群的失败
当没有从节点的主节点宕机,集群状态会失败
当超过半数的主节点同时宕机,集群状态会失败