Nosql数据库学习(二)redis创建集群 、 管理集群

nosql _day 02 redis集群
为什么要架设集群提供数据存储服务:
解决服务的单点故障问题 解决数据的备份问题 实现数据分布式存储

一 创建集群
集群的拓扑结构
集群的存储数据的工作原理
创建集群
1 配置管理主机 192.168.4.57
1.1 部署ruby脚本运行环境
1.2 创建脚本
1.3 验证脚本
121 yum -y install ruby rubygems
122 ls /var/ftp/pub/.gem
123 gem install /var/ftp/pub/redis-3.2.1.gem
124 tar -zxvf /var/ftp/pub/redis-4.0.8.tar.gz
125 cd redis-4.0.8/
126 ls src/
.rb
127 ls /root/bin
128 mkdir /root/bin
129 echo $PATH
130 cp src/redis-trib.rb /root/bin/
131 chmod +x /root/bin/redis-trib.rb
134 redis-trib.rb help

	2 配置redis服务器 ,启用集群功能

vim /etc/redis/6379.conf
[root@host51 ~]# sed -n ‘815p;823p;829p’ /etc/redis/6379.conf
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
[root@host51 ~]#
295 redis-cli -h 192.168.4.51 -p 6351 shutdown
296 /etc/init.d/redis_6379 start
297 ss -utnlp | grep redis-server

	3 创建集群

[root@host57 ~]# redis-trib.rb create --replicas 1 192.168.4.51:6351 192.168.4.52:6352 192.168.4.53:6353 192.168.4.54:6354 192.168.4.55:6355 192.168.4.56:6356

Creating cluster
Performing hash slots allocation on 6 nodes…
Using 3 masters:
192.168.4.51:6351
192.168.4.52:6352
192.168.4.53:6353
Adding replica 192.168.4.55:6355 to 192.168.4.51:6351
Adding replica 192.168.4.56:6356 to 192.168.4.52:6352
Adding replica 192.168.4.54:6354 to 192.168.4.53:6353
M: 2d00aaf5ece0eca2f58932798c5c4acc9880a52c 192.168.4.51:6351
slots:0-5460 (5461 slots) master
M: 58ca85799bb49111da118346fed63cf1471a8cfd 192.168.4.52:6352
slots:5461-10922 (5462 slots) master
M: fdafe040336b1a19e5da298726566ab4ca4932d9 192.168.4.53:6353
slots:10923-16383 (5461 slots) master
S: c07c5574884e533fcf81f80fda8c1eadd7a8c94e 192.168.4.54:6354
replicates fdafe040336b1a19e5da298726566ab4ca4932d9
S: 209c2865f6fcc78c0ba23a6cd6b3e83f36d852a4 192.168.4.55:6355
replicates 2d00aaf5ece0eca2f58932798c5c4acc9880a52c
S: 95b1d0c6e216ab34c9e03903ad344015dc6057b5 192.168.4.56:6356
replicates 58ca85799bb49111da118346fed63cf1471a8cfd
Can I set the above configuration? (type ‘yes’ to accept): yes

[OK] All 16384 slots covered.

在数据库服务器主机执行如下命令
info replication #查看角色
cluster info #查看集群信息
cluster nodes #查看集群成员

	4 查看集群信息 在管理主机使用脚本查看

[root@host57 ~]# redis-trib.rb info 192.168.4.52:6352#查看统计信息
[root@host57 ~]# redis-trib.rb check 192.168.4.52:6352#查看详细信息

	5 客户端访问集群存取数据

[root@host50 ~]# redis-cli -c -h 192.168.4.56 -p 6356

	统一排错
		1 分别停止6台主机的redis服务
		2 检查6台主机集群功能启用了吗?
		3 清空数据库目录 rm -rf /var/lib/redis/6379/*
		4 检查51-57 主机防火墙服务和selinux是否关闭
		5 分别启动6台主机的redis服务
		6 再次在管理主机 执行创建集群的命令

二 管理集群
准备准备工作:
创建2台新的虚拟机 IP分别为 192.168.4.58 和 192.168.4.59
安装源码redis软件 启动服务 修改服务使用的ip和端口
58主机 redis服务使用的ip 192.168.4.58 端口6358
59主机 redis服务使用的ip 192.168.4.59 端口6359

58 和 59 的Redis服务都要启用集群功能

2.1 向集群中添加新redis服务器
	
	2.1.1 添加master角色的redis主机到集群里192.168.4.58
		 1 运行redis服务 并启用了集群功能

		 2 在管理主机57 ,把58添加到集群里

[root@host57 ~]# redis-trib.rb add-node 192.168.4.58:6358 192.168.4.51:6351
[OK] New node added correctly.

[root@host57 ~]# redis-trib.rb info 192.168.4.52:6352

		 3 分配hash slots  

[root@host57 ~]# redis-trib.rb reshard 192.168.4.52:6352
移出hash槽个数 4096
接收hash槽主机ID 58主机的ID
移出hash槽主机ID all
同意配置 yes

[root@host57 ~]# redis-trib.rb info 192.168.4.52:6352
192.168.4.58:6358 (515e1384…) -> 3 keys | 4096 slots | 0 slaves.

[root@host57 ~]# redis-trib.rb check 192.168.4.52:6352
M: 515e1384e85aa8ffbfc4616a11aeeb49303a9b20 192.168.4.58:6358
slots:0-1364,5461-6826,10923-12287 (4096 slots) master
0 additional replica(s)

   平均分配所有主机占用的hash slots 

[root@host57 ~]# redis-trib.rb rebalance 192.168.4.52:6352

          2.1.2 添加slave角色的redis主机到集群里 192.168.4.59
		 1 运行redis服务 并启用了集群功能

		 2 添加主机到集群里

[root@host57 ~]# redis-trib.rb add-node --slave 192.168.4.59:6359 192.168.4.52:6352

[OK] New node added correctly.

		 3 查看集群信息

[root@host57 ~]# redis-trib.rb info 192.168.4.52:6352

2.2 把redis服务器移除集群
	 2.2.1 移除slave角色的Redis服务器

]# redis-trib.rb check 192.168.4.52:6352 #查看移除主机的ID

#移除slave服务器
[root@host57 ~]# redis-trib.rb del-node 192.168.4.52:6352 f95ac6287d6651fb7cb6b1da9e1f00f870d85525 192.168.4.59

[root@host57 ~]# redis-trib.rb info 192.168.4.52:6352

	 2.2.1 移除master角色的Redis服务器
		2.2.1.1  释放hash slots 

[root@host57 ~]# redis-trib.rb reshard 192.168.4.52:6352
移除hash slots 的个数 4096
接收hash slots主机的ID 想给那个主服务器就写对应的ID
被移除集群主机的ID ID值
done
同意 yes

		2.2.1.2 查看ID

[root@host57 ~]# redis-trib.rb check 192.168.4.52:6352

		2.2.1.2  移除主机

[root@host57 ~]# redis-trib.rb del-node 192.168.4.52:6352 515e1384e85aa8ffbfc4616a11aeeb49303a9b20

		2.2.1.3 查看集群信息

[root@host57 ~]# redis-trib.rb info 192.168.4.52:6352

		额外知识
 在移除的主机再次添加到集群里
  /etc/init.d/redis_6379 start
  redis-cli  -hip地址  -p端口号
  > cluster reset
  >exit

redis-trib.rb add-node IP地址:端口 192.168.4.52:6352

redis-trib.rb add-node --salve IP地址:端口 192.168.4.52:6352

 把集群中的服务器恢复为独立Redis服务器

[root@host51 ~]# redis-cli -h 192.168.4.51 -p 6351 shutdown
[root@host51 ~]# rm -rf /var/lib/redis/6379/*
[root@host51 ~]# vim /etc/redis/6379.conf
#cluster-enabled yes
#cluster-config-file nodes-6379.conf
#cluster-node-timeout 5000

[root@host51 ~]# /etc/init.d/redis_6379 start

]# redis-cli -h 192.168.4.51 -p 6351

cluster info
info replication
keys *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值