文档章节

谈一谈redis集群(二)

小D同学
 小D同学
发布于 2017/01/30 23:42
字数 711
阅读 40
收藏 0

Redis在集群时,大家比较关心的有二点: 1.高并发性性 2.高可用性

上一次讲redis集群时,只要集群节点的数量增加,就可以提高并发性。今天来聊聊redis 集群时的可用性。这次模拟生产环境中redis的节点崩溃或者失去连接,这个节点恰巧是master,验证集群的可用性.

测试场景 windows , 3个redis 节点  127.0.0.1:7001(slaver) ,127.0.0.1:7002(master) , 127.0.0.1:7003(slaver)。

首先,启动节点及哨兵文件,具体方法不再详细说明,详见上一篇 谈一谈 redis 集群.

 7002作为master,我们看一下7002的启动日志:

7002 完成对 7001 ,7003 的集群。

测试一下数据,首先在7002中,加了一条记录: yu3 lei3

查看7001,7003的数据:

2个slaver都是数据从无到有,集群已经完成。

现在测试一下把 7002这个master down掉,看看会发生什么。

执行命令:redis-cli -p 7002 debug sleep 100 

让7002这个主节点休息100秒。

这个时候主节点休眠的情况下测试redis集群是否可以工作。客户端试着向7001插入一条记录

刚开始查询一下redis内存,提示 连接中止了. 设想一下,为什么client会断开,是因为master崩溃而断开吗?

我感觉不像,redis server一直开着工作正常,仅仅是client断开,强制client 作一次reset. 接下来我们重连 插入一条记录。

再来看一下7003:

同样也需要重连client, slave7001插入的记录在slave7003获取到了。

这时7002的休眠也结束了,看一下7002中的数据

7002这个原来的master获取到了7001slave的数据。

这证明了我们的集群在master崩溃时,仍然可以工作的. redis集群的的可用性真的很强大.

看一下7001的server日志:

可以看出7001 经历了3个过程:1.作为slave,并从master7002同步了47字节的数据

2.发现访问不到master7002了

3. 成为master开始同步7003,过了大概106秒左右(我们将7002休眠了100秒),

又开始同步7002.

看下7002 的server日志:

刚开始是master,后来断开了连接,最后成为了slave.

再看一下7003的log:

sentinal 7001日志: 

sentinal 7002日志: 

sentinal 7003日志: 

日志比较多,可以大概看一下quorum, 这是动物园饲养员的技能。还有epoch, 更加确定了。

这次日志很多,整理一下日志显示出来的结果。

3个redis 节点 7001 7002(master) 7003做集群。

7002 休眠100秒,7001成为新master ,7003还是slave,7002 醒来时7001已经成为新一代的master,7002 不再继续做master而成为slave .

 


 

 

 

© 著作权归作者所有

小D同学
粉丝 2
博文 16
码字总数 7478
作品 0
延边
私信 提问
美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题

转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154 由于演讲时间有限,有关Redis-Cluster,演讲者没做太多介绍,简单的介绍了一些Redis-Cluster概念作用和遇到的两个问题,我们在Red...

lirulei90
2018/01/05
0
0
【干货合集】NoSQL技术体系深度解读系列(一):Redis,从技术原理到最佳实践

2018年开年知识盛会——NoSQL数据库直播大讲堂峰会,将于1月19日、23日、25日与大家见面,阿里云Redis、MongoDB、HBase的15位技术专家、产品专家将给大家带来深度的技术及产品分享。本次峰会...

场景研读
2018/01/08
0
0
数学建模

【业务需求】 一、功能需求 二、技术要求 三、非功能性要求 【人员要求】 一、能力要求 1、 2、电谈 3、 二、其他要求 1、电谈 2、 3、 【交付要求】 一、交付物要求 1、电谈 2、 3、 二、验...

zb1505484851557
2017/09/15
1
0
为什么我坚持招聘程序员必须笔试

总是看到有那么多招聘的纠结要不要笔试,应聘的坚决抵制笔试,我就说说我的看法: 1.谈架构的10个有9个是骗子,30岁以上的,24岁以下的面试者要当心!有一个兄弟说到 面过一个人,在惠普工作...

南湖船老大
2015/10/13
27.7K
182
慢谈 Redis 实现分布式锁 以及 Redisson 源码解析

# 产生背景 Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way. 在某些场景......

01/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
4
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
10
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
9
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
4
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部