NoSQL--创建集群和管理集群

集群环境
客户端:1台
管理主机:1台

redis服务器:6台,IP规划如下:
client:192.168.1.10
redis1:192.168.1.11
redis2:192.168.1.12
redis3:192.168.1.13
redis4:192.168.1.14
redis5:192.168.1.15
redis6:192.168.1.16
MGM:192.168.1.17
在这里插入图片描述

创建集群

1.基本环境配置:将装包步骤写成脚本,拷贝到1.11-1.16这6台机器上;
#!/bin/bash
yum -y install gcc
tar -zxf redis-4.0.8.tar.gz
cd redis-4.0.8/
make;make install			//编译;编译安装
cd utils/							
./install_server.sh			//初始化服务运行参数

基础环境搭建好之后,修改配置文件(以192.168.1.11为例):

]# vim /etc/init.d/redis_6379
43 $CLIEXEC -h 192.168.1.11  -p 6311 shutdown
]# vim /etc/redis/6379.conf
70 bind 192.168.1.11
93 port 6311
2.部署ruby脚本运行环境,创建管理集群脚本redis-trib.rb
]# yum -y install rubygems ruby		//自带
]# gem install redis-3.2.1.gem 		//需提前下载
]# mkdir /root/bin
]# tar -xzvf redis-4.0.8.tar.gz 
]# cd redis-4.0.8/
]# cp src/redis-trib.rb /root/bin/  	//创建管理集群脚本
]# chmod +x /root/bin/redis-trib.rb 
]# redis-trib.rb help					//查看命令帮助
3.redis-trib脚本,相关命令

redis-trib.rb < command > < option > <arguments…>

命令描述
create创建集群
check检查集群
info查看集群信息
reshard重新分片
del-node删除主机
add-node --slave添加slave主机
add-node添加master主机
rebalance平均分配hash slots
4.创建集群

启用集群功能,查看服务信息(6台都需要配置)

]# vim /etc/redis/redis.conf
	cluster-enabled yes		//启用集群功能
	cluster-config-file nodes-6379.conf		//存储集群信息文件
	cluster-node-timeout 5000		//超时时间(单位毫秒)
]# /etc/init.d/redis_6379 start
]# ss -ntulp | grep redis		//应该能看到两个端口号
5.管理机配置

创建集群

redis-trib.rb vreate --replicas 1 \			// 1是指从服务器个数
192.168.1.11:6311 192.168.1.12:6312 \
192.168.1.13:6313 192.168.1.14:6314 \
192.168.1.15:6315 192.168.1.15:6316
...
[OK] All 16384 slots covered. //集群创建完成提示

查看集群信息
在管理主机查看

]# redis-trib.rb info ip地址:端口		//查看集群信息
]# redis-trib.rb check 192.168.4.11:6311 //检查详细信息
6.访问集群(客户端访问)
]# redis-cli -c -h ip -p 端口号 

管理集群

1.故障切换测试

停止master主机的redis服务

  • master宕机后对应的slave自动被选举为master
  • 原master启动后,会自动配置为当前master的slave,且自动恢复数据.
  • 在管理主机查看信息
    ]# redis-trib.rb check 192.168.1.12:6312
    ]# redis-trib.rb info 192.168.1.12:6312
2.添加master服务器(192.168.1.18)
2.1 部署一台新redis服务器
  • 运行服务并启用集群配置
2.2 添加master主机步骤

2.2.1 添加主机

]# redis-trib.rb add-node 192.168.1.18:6318 192.168.1.11:6311
...
[OK] New node added correctly.	//添加成功提示

2.2.2 重新分片

  • 移除hash槽个数
  • 接收hash槽主机ID
  • 移出hash槽主机ID
  • 同意配置
]# redis-trib.rb reshard 192.168.4.11:6311		//重新分片
How many slots do you want to move (from 1 to 16384)?  //问题1
4096
What is the receiving node ID?  //问题2
ad86be22fdc26249dac2e85607b8b4c052a2efdd
...
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:				//问题3
all
...
Do you want to proceed with the proposed reshard plan(yes/no)? //问题4
yes
3. 添加slave服务器
3.1 部署一台新redis服务器
  • 运行服务并启用集群配置
3.2 添加slave主机

3.2.1 添加主机

]# redis-trib.rb add-node --slave [--master-id id值] ip地址:端口 192.168.1.11:6311 //如果不指定主节点的ID的话,会把新节点随机添加为从节点最少的主库
...

3.2.2 加入集群

]# redis-trib.rb add-node --slave 192.168.4.19:6319 192.168.4.11:6311  //加入到集群中,作为从服务器
]# redis-trib.rb info 192.168.4.11:6311
]# redis-trib.rb check 192.168.4.11:6311    //查看信息和状态  
4.移除主机
4.1 移除slave从服务器

从服务器没有hash槽,直接移除即可.
移除时需要指定从服务器的ID值

]# redis-trib.rb del-node 192.168.1.11:6311 ....(id).....
...
>>> SHUTDOWN the node  //会停止移除主机的redis服务
4.2 移除master主服务器

4.2.1 释放占用的hash槽

  • 指定移除slots 个数
  • 指定接收slots  主机id
  • 指定移出slots  主机id
]# redis-trib.rb reshard 192.168.4.11:6311
... 4096
... 接收主机的id
... 移除主机的id
]# redis-trib.rb info 192.168.4.51:6351

4.2.2 移除master主机

]# redis-trib.rb del-node 192.168.1.11:6311 ....(id).....
...
>>> SHUTDOWN the node  //会停止移除主机的redis服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值