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也是无所谓的。
创建集群都会用到的 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也是无所谓的。
相关文章推荐
- Redis学习
- phpredis---pub/sub订阅超时
- windows下安装redis
- Redis高级应用
- Disque:Redis之父新开源的分布式内存作业队列
- [转载] 使用Redis的Java客户端Jedis
- redis事务
- Redis的高级应用
- Redis系统管理
- redis数据类型
- redis与mysql数据同步
- Redis HA实践配置
- Redis单台的安装部署及集群部署
- go语言使用redis —— redigo
- redis安装与配置
- redis在PHP中的基本使用案例
- Redis学习笔记(一)应用场景
- Redis主从配置
- Redis千万级的数据量的性能测试
- 节约内存:Instagram的Redis实践