redis主从和集群

我们首先得明确一下,主从集群是不同的两个概念。

举个例子,什么是主从。比如说你有一个苹果A,主从就是对这个苹果A施展了影分身之术,比如说一主二从,指的是我们给这个苹果A在更高的维度造了2个分身(不同服务器),也被称为slaver(奴隶),对应master(主人)。

计算机只有0,1的数据,充其量是2维,我们在三维施展的这个trick,对计算机来说就跟魔法一样(并不)。

如果这个苹果A(master)不小心挂掉了,我们可以从三维直接将苹果A的影分身替代原来的苹果A,而之前跟苹果A接触的所有计算机世界的居民,都不知道,苹果A,它已经,不是原来的苹果A了。

好了主从大概的流程咱们 已经知道了,对于计算机世界来说,有点像恐怖小说,我们来看看如何实现这样的trick。

首先,我们得保证苹果A跟它的影分身必须是一模一样的,这总是前提吧,这就叫主从同步,也叫主从复制

一般影分身在刚创建的时候,进行一次全量同步,后面就进行增量同步就行了。

全量同步:将master上的快照数据,全部导入。

增量同步:在此期间,master增加的数据,增加到slaver上。(这里的算法,大家自行查阅吧,原理也很简单吧,拿到从服务器上最后那条消息的id,去跟master比对,拿后面的数据就行了)

一般情况下,影分身也就只是充当影子的功能(只读),只是作为master的备份,虽然有点残忍,但确实如此。福祸相依,也因为只是备份,那些master要干的工作,他可以不用干,活的比较轻松。

当master获得数据之后,可以规定,必须同步完N个slaver之后,才算真正的写入,才会返回给客户端说已经存储完毕。

一切的一切,都是为了master挂掉的那一刻。

这样说好像有点黑暗。

那影分身谁上位呢,毕竟影分身有多个,而master的位置只有一个?难道要开展宫心计了么?

no,no,no。在主从的关系里,还有一个凌驾于master,slaver的存在——长老会,叫Sentinel,翻译叫哨兵,我觉得这个存在应该叫长老会更合适,模仿的是古罗马的选举制度,master就是凯撒。slaver就是奴隶候选人。

每个长老也都是一个redis服务器,只不过身份职责跟普通的redis服务器不一样罢了。

长老会一般是奇数个,肯定是奇数个啊,要投票的嘛,偶数个,王对王怎么办?

如果长老会里长老挂掉了一个怎么办,还能怎么办,结果就是,可能无法选举出大长老了。

因为长老会的目的,是为了选举出大长老(sentinel leader)来决定,master是谁。

嗯?你们难道以为长老会是来投票决定谁是master的吗?

参考

在这里插入图片描述
然后大长老,有了权威性,再根据神(人类)制定的上述流程,决定哪个slaver上位。

这是sentinel的选举,一个主从里的选举。

但是,你不觉得这个长老会有点吃干饭么?就只是这么点用处,都不干其他的活

集群的话,就不需要单独设立长老会了。

在这里插入图片描述
其他的master替代了哨兵的职务。

我们再来说说集群是咋回事,跟上面的主从有啥分别。

我们要知道,主从,虽然分了这么多影分身,但是这些影分身都是不干活的!就等着master挂了好上位。

什么读写啊,什么rehash啊等脏活累活,都是master在干的,懂?

一个master实在是干不过来了,是真的干不过来了!

人类就多造了几个master,master B,master C什么什么的。

当然master B,它也有几个影分身,等着它挂掉。

master们组成的交际圈,就叫做集群,才是真正同甘共苦的好兄弟。

master们之间,活具体怎么分配,可以参考这篇文章。master们的多种分工制度

所以当masterA挂了之后,就由其他master代替长老会的职务,来进行投票选举,哪个影分身来代替masterA。

最后,这一切腥风血雨,都与用户(客户端)无关,在用户的眼里,redis就是那个单纯善良的redis,没有一丝丝改变。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rgbhi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值