redis集群基本测试分析

本文介绍了Redis集群的创建和测试过程,包括使用redis-trib.rb创建带有副本的集群,redis-cli的并发连接区别,主从关系的验证,以及数据在槽间的随机分布。在主节点关闭时,从节点能够自动接管并成为新的主节点。此外,文章还探讨了集群在主从节点同时故障时的行为,以及从节点成为主节点的条件。集群的IP或端口更改不会影响其结构,因为每个节点都有唯一ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


关于指令

创建集群都会用到的 redis-trib.rbcreate –replicas 1后面的-replicas 是给三个主节点分配三个从节点

 

Redis-cli –c –h –p  其中-c是并发连接  我测试了一下带-c和不带-c的区别 

加入一个主节点有个key  myname存在里面存着“xiangwen”  从节点可以查到这个key

如果使用-c的话 从节点 用get myname命令 会跳转到主节点。不带的话 直接会提示错误。当关闭这个主节点  get myname都可以出现“xiangwen”(从节点变成了主节点)

-h –p 就是登录的主机ip  和端口

查询开启的redis服务 ps –ef|grep redis 

 

关于主从关系

假设有如下环境的集群环境M 8000 8001 8002S 8003 8004 8005

主从关系是 8003是8000的slave  slot(10923-16383)

                     8004是8001的slave  slot(5461-10922)

                     8005是8002的slave  slot(0-5460)

1, 存储数据是随机的

我登录8000的服务器执行命令  set myname “xiangwen”发现时而存在8000 时而存在8001 时而存在8002.为了跟好的观察我下次登录没用-c命令,就不会出现跳转 快速执行存储操作的话  可以看是怎样分布的


从上图可知 储存是随机的  如果更快的试验甚至可以发现是按某种规律在slot之间走


如上图显示 slot从 2765->4980->8983->13110->977(一圈走完)…….就是在0->16383之间走。所以存储是随机的

2主从关系的切换机制

经测试,redis集群主从关系是可以自动切换的

例如我在8000的服务器创建一个myname的key


可以看到 在8003(8000的从)上可以看到该key,因为是从  所以只读不能操作,提示flushall失败


接下来关闭8000…….发现8003可以直接获得key的数据

 

查看集群信息

发现8003已经变成了master并且获得了8000的slot!

 

重新启动8000发现他变成了8003的从节点。



关于redis集群一些其他问题

       1.某个主从都挂掉了

       之前讨论过主失败了从来跟进代替主,直到另一个再接进来成从的角色。

       那么如果某个主和从一起down了会怎么样呢?

       此处关闭了8002和8004

       测试了一下 结果是集群直接fail了


开启8002集群又活了


但是不开启8002 只是开启8004的话结果还是失败。看来从只能经过进化变成主而不能直接充当主的角色。

2什么从角色可以参加主的竞选

大致意思就是通过设置从节点的优先级,来决定从节点是否能扮演主节点的角色。优先级是0的将不会成为主节点。

3当集群里的有的ip或者port改变时,整个集群会出现问题吗?

不会出现问题,当初创建集群的的时候每个node会有一个唯一的id,只要修改节点的ip不会影响id的识别。集群还是原来的架构。当然修改port也是无所谓的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值