开发者学堂课程【Redis 数据库入门:Redis_集群_原生3.x集群模式_3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/15/detail/67
Redis_集群_原生3.x集群模式_3
内容介绍
一、启动
一、启动
启动好之后,就可以开始创建对应的槽位。在配置文件中,700X 是客户端的连接的端口,100x 是内部沟通的端口。
与2.8不同的是,7000到7005都启动起来了。 但是还启动了10000的端口,不是10000,这些端口是内部沟通的端口,而7000这些端口是客户端的连接端口。
至于为什么会启动10000这些端口,就是因为之前在配置文件中把cluster写入了Yes。而现在只是把实例起来了,并没有构成一个集群,开始分配槽位。
关键就在于创造集群,使用脚本错位分配,通过 Redis-trib 这个 Ruby 脚本来分配,3个主实例,3个从实例,所以还需要去安装相应的 Ruby。
接着再通过 gem install redis 安装, GEM 是一个枢纽, 会通过网络来自动下载。也能够通过本地来进行下载安装。即通过代码 local+文件位置来指定安装。
安装完成之后,就可以直接使用 Ruby 脚本来分配了。接着就执行这个脚本。
执行之前,需要将位置切换到之前安装2.8的地方。 在其中能看到有一个.rb的脚本,需要执行的就是该脚本。然后 print,replican 1 表示有一个副本作为从,然后7001 7002都分别是主,,如果你写的是1的话,那他就默认就是后面3个就是前面3个的从。
执行之后就会给出提示消息:
首先连接到了几个实例,使用指定的3个为主,剩下3个为从 ,接下来,指明了3个主和3个从 。
接下来就等待集群构建完毕, 提示信息会提示槽是否分配完成,默认为平均分配 ,主从分配根据ID。
完毕之后,集群构建完成。通过 Rest client 去连接,端口可以任意连接,因为他们没有主从的差别。
此时需要加一个选项 c,去连 cluster 集群模式,此时去掉一个主进程查看是否会自动添加一个 slave 作为主,可以通过日志查看到,包括启动整个集群和分配槽,6个实例都会日志。
7003作为一个从,需要进行同步,接着有一个 rgb 落地到磁盘,然后接着会进行同步。有一定的反应时间,反应完成之后会发现连接不上,就会开始投票,投票完了之后,把它提升为新的主。此时就可以连接到7003。
如果此时输入数据就会跳到7002,如果要再次设置,就需要再写一遍,说明系统会自动帮助用户跳转。如果再次把7000启动起来,就会自动落为 Slave,主动同步了7003。
如果把从也停止的话,整个系统中就只有2个主。相当于剩下的槽都没有了,现在这个集群就暂停服务了,除非重新恢复。
以上操作,使用 Ruby 脚本创建了一个集群, 还可以做到重新分配槽位。