范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Redis早期的主从架构原理分析,早期如何实现读写分离的?

  1、强制读写分离
  基于主从复制架构,实现读写分离,redis slave node节点只读,默认开启配置:slave-read-only yes。开启了只读的节点redis slave node,会拒绝所有写操作,这样可以强制搭建成读写分离的架构。2、redis 主从架构复制的核心机制
  (1)redis采用异步方式复制数据到slave节点。
  (2)一个master node是可以配置多个slave node的。
  (3)slave node也可以连接其他的slave node。
  (4)slave node做复制的时候,是不会block master node的正常工作的。
  (5)slave node在做复制的时候,也不会block对自己的查询操作,它会用旧的数据集来提供服务; 但是复制完成的时候,需要删除旧数据集,加载新数据集,这个时候就会暂停对外服务了。
  (6)slave node主要用来进行横向扩容,做读写分离,扩容的slave node可以提高读的吞吐量。
  如果采用了主从架构,那么建议必须开启master node的持久化!不建议用slave node作为master node的数据热备,因为那样的话,如果你关掉master的持久化,可能在master宕机重启的时候数据是空的,然后可能一经过复制,salve node数据也丢了。 3、主从架构的复制原理(Redis主从同步机制是怎么样的, 如slave启动之后同步过程?)
  (1)当启动一个slave node的时候,它会发送一个PSYNC 命令给master node。
  (2)如果这是slave node重新连接 master node,那么master node仅仅会复制给slave部分缺少的数据 ,否则如果是slave node第一次连接 master node,那么会触发一次full resynchronization ,master会启动一个后台线程,开始生成一份RDB快照文件,同时还会将从客户端收到的所有写命令缓存在内存中 。RDB文件生成完毕之后,master会先将这个RDB发送给slave,slave会先写入本地磁盘,然后再从本地磁盘加载到内存中。然后master会将内存中缓存的写命令 发送给slave,slave也会同步这些数据。
  (3)slave node如果跟master node有网络故障,断开了连接,会自动重连。master如果发现有多个slave node都来重新连接,仅仅会启动一个rdb save操作,用一份数据服务所有slave node。4、主从复制的断点续传
  从redis 2.8开始,就支持主从复制的断点续传,如果主从复制过程中,网络连接断掉了,那么可以接着上次复制的地方,继续复制下去,而不是从头开始复制。master node会在内存中建一个backlog ,master和slave都会保存一个replica offset 还有一个master id(run id) ,offset就是保存在backlog中的。如果master和slave网络连接断掉了,slave会让master从上次的replica offset开始继续复制,但是如果没有找到对应的offset,那么就会执行一次full resynchronization全量同步。5、无磁盘化复制配置
  master在内存中直接创建rdb,然后发送给slave,不会在自己本地落地磁盘了。
  repl-diskless-sync no 改为开启就可以了
  repl-diskless-sync-delay,等待一定时长再开始复制,因为要等更多slave重新连接过来,用一分数据提供服务。6、主从复制过期key处理
  slave node不会过期key,只会等待master过期key。如果master过期了一个key,或者通过LRU淘汰了一个key,那么会模拟一条del命令发送给slave。7、复制的完整流程
  (1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始。master host和ip是从哪儿来的?redis.conf里面的slaveof配置的。
  (2)slave node内部有个定时任务,每秒检查是否有新的master node要连接和复制,如果发现,就跟master node建立socket网络连接。
  (3)slave node发送ping命令给master node。
  (4)口令认证,如果master设置了requirepass(master上启用安全认证配置,requirepass 自己取名 ),那么salve node必须发送masterauth的口令过去进行认证(masterauth 自己取名 )
  (5)master node第一次执行全量复制,将所有数据发给slave node。
  (6)master node后续持续将写命令,增量异步复制给slave node。8、数据同步相关的核心机制
  指的就是第一次slave连接msater的时候,执行的全量复制,这个过程里面的一些细节的机制
  (1)master和slave都会维护一个offset
  master会在自身不断累加offset,slave也会在自身不断累加offset。slave每秒都会上报自己的offset给master,同时master也会保存每个slave的offset。这个倒不是说特定就用在全量复制的,主要是master和slave都要知道各自的数据的offset,才能知道互相之间的数据不一致的情况。
  (2)backlog
  master node有一个backlog,默认是1MB大小,master node给slave node复制数据时,也会将数据在backlog中同步写一份。backlog主要是用来做全量复制中断后的增量复制的。
  (3)master run id
  info server命令,可以看到master run id。如果根据host+ip定位master node,是不靠谱的,如果master node重启或者数据出现了变化,那么slave node应该根据不同的run id区分,run id不同就做全量复制。如果需要不更改run id重启redis,可以使用redis-cli debug reload命令。
  (4)psync
  从节点使用psync从master node进行复制psync runid offset。master node会根据自身的情况返回响应信息,可能是FULLRESYNC runid offset触发全量复制,可能是继续触发增量复制。9、全量复制流程
  (1)master执行bgsave,在本地生成一份rdb快照文件。
  (2)master node将rdb快照文件发送给salve node,如果rdb复制时间超过60秒(repl-timeout),那么slave node就会认为复制失败,可以适当调节大这个参数。
  (3)对于千兆网卡的机器,一般每秒传输100MB,6G文件,很可能超过60s。
  (4)master node在生成rdb时,会将所有新的写命令缓存在内存中,在salve node保存了rdb之后,再将新的写命令复制给salve node。
  (5)client-output-buffer-limit slave 256MB 64MB 60,如果在复制期间,内存缓冲区持续消耗超过64MB,或者一次性超过256MB,或复制时间超过60秒,那么停止复制,复制失败。
  (6)slave node接收到rdb之后,然后重新加载rdb到自己的内存中,同时基于旧的数据版本对外提供服务,写入后,清空自己的旧数据,用新的对外提供读服务。
  (7)如果slave node开启了AOF,那么会立即执行BGREWRITEAOF,重写AOF。在这个过程中,rdb生成、rdb通过网络拷贝、slave旧数据的清理、slave node aof rewrite,很耗费时间的。10、增量复制
  (1)如果全量复制过程中,master-slave网络连接断掉,那么salve重新连接master时,会触发增量复制。
  (2)master直接从自己的backlog中获取部分丢失的数据,发送给slave node,默认backlog就是1MB。
  (3)master就是根据slave发送的psync中的offset来从backlog中获取数据的。
  下节讲解哨兵架构,在讲之前,你能否处理下面两个问题呢?
  1、异步复制导致的数据丢失
  哨兵可以解决主从架构下,因master宕机后不能接收写请求而进行选举salve为新的master,达到高可用的效果。
  因为master -> slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了,此时应该怎么处理?
  2、脑裂导致的数据丢失
  脑裂,也就是说,某个master所在机器突然脱离了正常的网络,跟其他slave机器不能连接,但是实际上master还运行着。
  此时哨兵可能就会认为master宕机了,然后开启选举,将其他slave切换成了master这个时候,集群里就会有两个master,也就是所谓的脑裂。
  此时虽然某个slave被切换成了master,但是可能client还没来得及切换到新的master,还继续写向旧master的数据可能也丢失了,因此旧master再次恢复的时候,会被作为一个slave挂到新的master上去,自己的数据会清空,重新从新的master复制数据,导致数据丢失,怎么处理脑裂导致的数据丢失呢?
  先考虑一下,我们下节进行讲解。

Sabic推出新型玻璃纤维PBT探测车载雷达这些化合物提供卓越的翘曲控制和激光焊接能力,允许设计自由以改善信号传输。随着城市化推动自动驾驶技术的发展和高级驾驶辅助系统(ADAS)的更广泛实施,汽车OEM和各层级正在积极寻求高5G新基建催生光通信新发展契机核心摘要后疫情时代,经济数字化浪潮仍将持续,来自海外的云基建需求仍将持续旺盛。同时,随着今年国内5G基站集采和建设逐步推进,叠加绿色通信中的储能与逆变器标的被市场发掘,通信行业的基腾讯游戏集结亿万玩家共护国宝将在文物保护等方面发挥更大价值2021年99公益日即将来临,为汇聚更多社会力量助力文物保护加入社会公益,腾讯宣布旗下近20款游戏和电竞赛事将以PlayforGood为主题推出一系列爱心助力活动,带领玩家以多种游可持续聚氨酯生产的挑战和机遇主要聚氨酯(PU)供应商和多家初创公司正在开发PU原料的生物基或回收替代品,这一趋势将在未来几年加强。有超过1,000种市售聚合物。然而,只有少数材料,如聚烯烃PVC聚苯乙烯和聚酯巴斯夫与三洋化成签署关于聚氨酯分散体(PUD)的合作谅解备忘录联合开发与技术共享,打造先进的PUD产品新型PUD解决方案助力客户实现可持续目标强化PUD客户的全球化产品网络2021年9月27日巴斯夫与三洋化成工业株式会社(以下简称三洋化成)签SABIC携手微软开发旗下首款使用再生海洋塑料的产品作为推动海洋塑料回收利用的新举措之一,全球多元化化工企业沙特基础工业公司(SABIC)日前与微软合作开发首款以再生海洋塑料为原料的消费电子产品微软海洋塑料鼠标。这款鼠标的外壳含有2安踏新一代中底技术发布首创尼龙弹性体子胚发泡工艺9月27日,在体育用品品牌安踏举办的首届创新科技大会上,安踏氮科技正式亮相,安踏的新一代中底技术也揭开面纱,两款率先搭载氮科技的安踏C202GT马拉松竞速跑鞋和汤普森第七代KT签名十几个省市限电!化工行业压力有点大材料涨价的声势还没降下去,限电令又来了。近期,多地下发能耗双控的政策文件,各类高耗能高污染的行业纷纷停产停工,江苏云南浙江等地限产升级的消息更是刷爆朋友圈。所谓能耗双控政策,是指能紫光展锐智能穿戴产品线价格上调25如今,从原材料到芯片以及其他基本部件的短缺,正在对电子和汽车行业产生连锁反应。持续的芯片短缺已然给许多科技公司的供应链带来了很大压力。日前,国内芯片厂商紫光展锐发布消费电子产品调价巴斯夫与价值链上下游伙伴携手成立可持续发展共建联盟2021年10月19日,由巴斯夫倡议,携手价值链上下游伙伴共同创建的可持续发展共建联盟(SustainabilityCovalence)正式成立。该联盟旨在聚拢产业链合作方,推动各性能变强了!魅族18新版本亮相骁龙888加持8月31日消息,两款魅族新机已入网工信部,从手机配置机身尺寸很容易看出,这两款机型为搭载了骁龙888Plus芯片的魅族18Pro换芯版。骁龙888Plus配备了高通Kryo680C
三星屏幕上所谓的E4和E5屏究竟有什么区别?深度解析文小伊评科技在目前手机屏幕领域,公认的,显示效果最好的OLED屏幕来自三星,而我们作为消费者最长听到的就是E4,E5等等字眼。譬如小米11搭载的就是E4发光材料的OLED屏幕,而小2022年迎来新机发布小高潮,你想要的购机指南请看这里最近这段时间,手机市场可谓异常火爆,前脚有一加的胖白达和苹果的苍岭绿将旗舰手机的颜值配色推向了高潮,后脚Redmi的宇宙狠和荣耀的magic4又进行了同台竞技,可以说是上半年手机数烧钱后买菜平台路在何方作者李勇坚中国社会科学院财经战略研究院研究员历经烧钱大战后,处于持续亏损状态的网络买菜平台正在冷静下来,一些地方区域供应商订单快速下降,用户流失严重,网络买菜平台正面临新的挑战。网几个优质的DevOps开源项目分享开源精选是我们分享GithubGitee等开源社区中优质项目的栏目,包括技术学习实用与各种有趣的内容。本期推荐的是几个优质的DevOps开源工具。JpomJpom是一个简而轻的低侵华为前太子李一男,自立门户对抗任正非,45岁成阶下囚李一男,他是华为最牛天才,年仅27岁,就升任华为副总裁,还被任正非钦定为接班人。然而,这个天之骄子却在日后将一手好牌生生打烂,悍然走上与华为对立的局面。从与任正非情同父子到反目成仇协同打造长三角科技创新共同体来源浙江日报原标题协同打造长三角科技创新共同体今年的政府工作报告指出,要推进科技创新,促进产业优化升级,突破供给约束堵点,依靠创新提高发展质量。当今世界,科技越来越成为大科技,依赖OPPOA16e入门机发布搭载联发科HelioP22芯片上周,OPPO在印度发布了OPPOA16e入门机。OPPOA16e配备6。52英寸IPSLCD屏幕,带有水滴凹槽设计。这款手机提供720x1600像素的HD分辨率,60Hz的刷新率棉花不只有白色我科研人员开辟天然彩色棉培育新途径来源科技日报原标题棉花不只有白色我科研人员开辟天然彩色棉培育新途径3月17日,记者从华中农业大学获悉,该校棉花遗传改良团队在国际植物学杂志植物生理学上刊发论文称,他们解析了一个海岛高通设立1亿美元骁龙元宇宙基金用于投资XR开发者和企业日前,高通公司(NASDAQQCOM)今日宣布设立总金额达1亿美元的骁龙元宇宙基金(SnapdragonMetaverseFund),用于投资打造独特的沉浸式XR体验以及相关核心A电子智能测温耳标在大数据养殖智能管理中的应用近年来,随着畜牧业的不断发展,耳标成为动物识别体系的重要组成部分,得到了广泛的应用。在养殖场中,饲养者可以通过耳标号快速准确的找到对应的动物。在动物的生产性能健康程度和合理喂食等方移动定向优惠流量数据包坑不坑,我来告诉你我的经历现在用手机的多了,流量也多,本人就喜欢看看视频小说,特别是喜欢看头条,所以流量用的也大,特别是本月流量就超标了,我就去移动APP看看有什么优惠流量数据包,我看了看移动APP上面有个