您的位置:首页 > 数据库 > Redis

redis集群基本测试分析

2015-07-24 11:11 477 查看
关于指令

创建集群都会用到的 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也是无所谓的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: