0
点赞
收藏
分享

微信扫一扫

LAMP架构之11——Redis-cluster实现redis集群(Codis)

秀儿2020 2022-01-21 阅读 98

目录

1、实验环境的搭建

2、redis集群的查看

3、redis集群的使用——无中心化

4、redis集群中节点的追加

5、redis-cluster节点的删除


1、实验环境的搭建

在</root/redis-6.2.4/utils/create-cluster>中,有一个自动创建集群的脚本。按以下方法执行后默认创建6个节点,并自动分为三个“一主一从”的集群结构。

./create-cluster start            #自动创建6个节点
./create-cluster create           #自动设置master和slave

2、redis集群的查看

作为客户端使用:

redis-cli -c -p 30001            #-c表示集群模式(cluster),-p表示端口

作为管理员管理集群:

redis-cli --cluster help            #查询redis集群命令的帮助
redis-cli --cluster check 127.0.0.1:30001        #检查集群

 

 3、redis集群的使用——无中心化

随便进入哪个节点,向其中写入数据,这里以30001端口为例,在写入数据后,已经重定向到30002端口了。

 进入30005端口,访问数据,仍然会重定向到30002端口

故障测试:

当集群中某一节点出现故障(shutdown)时。以30002节点为例,原本是30006的master,但是30002节点挂掉以后,,这组集群中的master会自动转移到30006

重启<./create-cluster start>以后,节点30002已经变成了30006的一个slave。

4、redis集群中节点的追加

脚本文件中默认为6个节点,在脚本中把6改称8,就会产生8个节点

测试:启动<create-cluster>

但是,新增的两个节点并不在集群里边,也就是说30001-30006可以互相联通,30007和30008两个节点与其他节点不通。因此需要将这两个节点添加进集群中,具体操作步骤如下:

redis-cli --cluster add-node 127.0.0.1:30007 127.0.0.1:30001
                    #增加节点,    本机接口,     目标集群的接口

<--cluster-slave>参数不添加时表示新增的节点作为master,参数添加时表示新增的节点作为slave。

将30008节点作为30007节点的slave,命令的最后指定master30007的ID

redis-cli --cluster add-node 127.0.0.1:30008 127.0.0.1:30001 --cluster-slave --cluster-master-id d7aed15e5d3bb42be1271c058d365cfa785dd0cb

但是30007和30008两个节点虽然添加进了集群,但并没有分配到hash槽,因此下一步需要向这两个节点分配hash槽。

 分配hash槽:

redis-cli --cluster reshard 127.0.0.1:30001    #从30001节点开始重新分配hash槽

 下边这些参数表示:(1)要分配多少hash槽。(2)被分配hash槽的节点ID。(3)all表示从左右节点中分配hash槽(也可以某一节点的ID表示从该节点中分配hash槽)

分配完成后,可以看到30007节点总共是3000个hash槽,分别从其他三组小集群中划分出来的。

 5、redis-cluster节点的删除

./create-cluster stop                #停止redis-cluster
./create-cluster clean               #清除redis-cluster

举报

相关推荐

0 条评论