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

Redis进阶知识点Redis面试中常问的几个问题

  本文参考了与Redis相关的课程,主要讲解了Redis面试中常问的几个问题,如Redis主从,Redis哨兵,非常详细,适合小白和复习的大佬  Redis集群模式
  Redis有三种集群模式,分别是:主从模式、哨兵模式、Cluster模式。Rdis最开始使用主从模式做集群,若master宕机需要手动配置slave转为master;后来为了高可用提出来哨兵模式,该模式下有一个哨兵监视master和slave,若master宕机可自动将slave转为master,但它也有一个问题,就是不能动态扩充;所以在3.x提出cluster集群模式。  Redis主从架构
  Redis的主从模式支持客户端的高并发状况。主从模式是三种模式中最简单的一种,在主从复制中,数据库被分为主数据库(master)和从数据库(slave)。其中,主节点主要负责写数据,而且主节点需要将数据写到其他的从节点上,而从节点负责读,所有的读请求全部走从节点。
  主从模式需要注意:  1.复制的数据流是单向的,只能由主节点复制到从节点。
  2.主(master)数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库
  3.从(slave)数据库一般都是只读的,并且接收主数据库同步过来的数据
  4.一个master可以拥有多个slave,但是一个slave只能对应一个master
  5.slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来
  6.master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务
  7.master挂了以后,不会在slave节点中重新选一个master
  假设A,B为两个Redis示例,如果想让B作为A的从节点,需要在B节点上执行命令:slaveof A的IP A的端口(port)  全量同步(sync)
  一般用于初次复制场景,Redis早期支持的复制功能只有全量复制,它会把主节点全部数据一次性发送给从节点,当数据量较大时,会对主从节点和网络造成很大的开销。
  判断依据:
  Replication Id:简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slave则会继承master节点的replid。
  offset:偏移量,随着记录在repl_baklog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。
  因此slave做数据同步,必须向master声明自己的replication id和offset,master才可以判断到底需要同步哪些数据。
  因为slave原本也是一个master,有自己的replid和offset,当第一次变成slave,与master建立连接时,发送的replid和offset是自己的replid和offset。
  master判断发现slave发送来的replid与自己的不一致,说明这是一个全新的slave,就知道要做全量同步了。
  master会将自己的replid和offset都发送给这个slave,slave保存这些信息。以后slave的replid就与master一致了
  因此,master判断一个节点是否是第一次同步的依据,就是看replid是否一致。
  完整流程描述如下:
  slave节点请求增量同步
  master节点判断replid,发现不一致,拒绝增量同步
  master将完整内存数据生成RDB,发送RDB到slave
  slave清空本地数据,加载master的RDB
  master将RDB期间的命令记录在repl_baklog,并持续将log中的命令发送给slave
  slave执行接收到的命令,保持与master之间的同步  增量同步(psync)
  增量同步:用于处理在主从复制中因网络闪断等原因造成的数据丢失场景,当从节点再次连上主节点后,如果条件允许,主节点会补发丢失数据给从节点。补发的数据远远小于全量数据,可以有效避免全量复制的过高开销
  》说白了就是只更新slave与master存在差异的部分数据
  在Redis 2.8之后使用psync命令代替sync命令执行同步操作,psync具备了数据全量重同步 和 部分重同步模式。  repl_backlog原理
  master怎么知道slave与自己的数据差异在哪里呢?
  这就要说到全量同步时的repl_baklog文件了。
  这个文件是一个固定大小的数组,只不过数组是环形,也就是说角标到达数组末尾后,会再次从0开始读写,这样数组头部的数据就会被覆盖。
  repl_baklog中会记录Redis处理过的命令日志及offset,包括master当前的offset,和slave已经拷贝到的offset:
  slave与master的offset之间的差异,就是salve需要增量拷贝的数据了。
  随着不断有数据写入,master的offset逐渐变大,slave也不断的拷贝,追赶master的offset:
  直到数组被填满:
  此时,如果有新的数据写入,就会覆盖数组中的旧数据。不过,旧的数据只要是绿色的,说明是已经被同步到slave的数据,即便被覆盖了也没什么影响。因为未同步的仅仅是红色部分。
  但是,如果slave出现网络阻塞,导致master的offset远远超过了slave的offset:
  如果master继续写入新数据,其offset就会覆盖旧的数据,直到将slave现在的offset也覆盖:
  棕色框中的红色部分,就是尚未同步,但是却已经被覆盖的数据。此时如果slave恢复,需要同步,却发现自己的offset都没有了,无法完成增量同步了。只能做全量同步。
  主从同步优化
  主从同步可以保证主从数据的一致性,非常重要。
  可以从以下几个方面来优化Redis主从就集群:
  1.在master中配置repl-diskless-sync yes启用无磁盘复制,避免全量同步时的磁盘IO。
  2.Redis单节点上的内存占用不要太大,减少RDB导致的过多磁盘IO
  3.适当提高repl_baklog的大小,发现slave宕机时尽快实现故障恢复,尽可能避免全量同步
  4.限制一个master上的slave节点数量,如果实在是太多slave,则可以采用主-从-从链式结构,减少master压力  全量和增量区别
  简述全量同步和增量同步区别?
  • 全量同步:master将完整内存数据生成RDB,发送RDB到slave。后续命令则记录在repl_baklog,逐个发送给slave。
  • 增量同步:slave提交自己的offset到master,master获取repl_baklog中从offset之后的命令给slave
  什么时候执行全量同步?
  • slave节点第一次连接master节点时
  • slave节点断开时间太久,repl_baklog中的offset已经被覆盖时
  什么时候执行增量同步?
  • slave节点断开又恢复,并且在repl_baklog中能找到offset时  Redis哨兵
  哨兵(sentinal)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master 并将所有的 slave 连接到新的 master。
  哨兵的作用如下:
  • 监控:Sentinel 会不断检查您的master和slave是否按预期工作
  • 自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主
  • 通知:Sentinel充当Redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给Redis的客户端
  Redis集群监控原理
  Sentinel基于心跳机制监测服务状态,每隔1秒向集群的每个实例发送ping命令:
  •主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例主观下线。
  •客观下线:若超过指定数量(quorum)的sentinel都认为该实例主观下线,则该实例客观下线。quorum值最好超过Sentinel实例数量的一半。
  集群故障恢复
  一旦发现master故障,sentinel需要在salve中选择一个作为新的master,选择依据是这样的:
  1.首先会判断slave节点与master节点断开时间长短,如果超过指定值(down-after-milliseconds * 10)则会排除该slave节点
  2.然后判断slave节点的slave-priority值,越小优先级越高,如果是0则永不参与选举
  3.如果slave-prority一样,则判断slave节点的offset值,越大说明数据越新,优先级越高
  4.最后是判断slave节点的运行id大小,越小优先级越高。
  当选出一个新的master后,该如何实现切换呢?
  流程如下:
  1.sentinel给备选的slave1节点发送slaveof no one命令,让该节点成为master
  2.sentinel给所有其它slave发送slaveof 192.168.150.101 7002 命令,让这些slave成为新master的从节点,开始从新的master上同步数据。
  3.最后,sentinel将故障节点标记为slave,当故障节点恢复后会自动成为新的master的slave节点
  哨兵小结
  Sentinel的三个作用是什么?
  • 监控
  • 故障转移
  • 通知
  Sentinel如何判断一个redis实例是否健康?
  • 每隔1秒发送一次ping命令,如果超过一定时间没有相向则认为是主观下线
  • 如果大多数sentinel都认为实例主观下线,则判定服务下线
  故障转移步骤有哪些?
  • 首先选定一个slave作为新的master,执行slaveof no one(永不为奴)
  • 然后让所有节点都执行slaveof 新master
  • 修改故障节点配置,添加slaveof 新master

没人告诉你产后的那些事一直以为怀孕很辛苦,生下来就好了,等生完才知道原来怀孕的时候是最幸福的时光。1。顺产真的疼,即使打了无痛,顺的时候也会关掉的,因为担心不会发力,很多人说生完就忘了有多疼了,至少我现祁阳幼教名师工作室举行第三批成员遴选活动新湖南客户端4月11日讯(通讯员刘洪)为更好地发挥幼教名师工作室的辐射作用,4月7日下午,祁阳市幼教名师工作室第三批成员遴选活动在市中心幼儿园隆重举行。祁阳市教育局学前教育发展中心甲流到底有多可怕!今天看到一篇文章,一位二胎妈妈五岁的女儿因为感染甲流,高热惊厥继而引发脑死亡,并最终不治的事件。闺蜜刚上幼儿园的宝宝,上周也感染了甲流,高烧惊厥了。所幸救治及时,孩子住院一周后安然要不要生二胎,我的亲身经历昨天写的随笔以后,有朋友私信我关于生不生二胎以及二胎生下来感受的问题?如果我没有生二胎,在遇到别人问到我这个问题的时候,我会以我在网上获取到的信息跟他交流,现在做为一位已经有二胎的最低只需1分钱!Switch上便宜又好玩的游戏推荐!Switch的游戏,最被玩家诟病的一点,就是游戏都很贵,动辄三四百一款,对于学生党之类没有固定收入的玩家来说,确实购买时压力很大。但是Switch上也有很多便宜又好玩的游戏,今天就办理香港澳门探亲签注攻略头条创作挑战赛本团队专注并擅长于情色法律实践与研究涉港法律实务和公司类法律纠纷,如对相关话题感兴趣,欢迎添加关注,避免日后错过重要内容。之前跟大家分享了如何缔结跨境婚姻后,有朋友留乡村旅游助力乡村振兴来源经济日报近年来,我国乡村旅游市场规模持续扩大产业链条不断延展综合带动作用日渐显著,形成了一大批乡村旅游重点村镇精品线路集聚区域,成为乡村振兴的重要抓手。十四五旅游业发展规划指出沉浸在稻香醉人的诗意乡村一线讲述这几天,我们正依托余村矿山遗址,筹备小年夜音乐会。去年8月,中国美术学院团队到我们村调研,一眼就相中了这里,希望打造成自然风景走廊,双方一拍即合。可谁能想到,这个文艺范儿十封面有数丨五一未至旅游先火内地出境游预订量同比大增封面新闻记者张越熙距离五一小长假还有不到一个月的时间,假日旅游需求已经提前释放。4月6日,携程的五一假日旅游前瞻数据显示,国内游订单已追平2019年,同比增长超7倍内地出境游预订同东港区迎来研学热微风渐暖,草长莺飞。眼下,越来越多的人选择走到户外,在行走中学习文化传承,于体验里感受文化智慧,东港区也迎来了研学游小高峰。在东港区龙门崮景区研学基地,来自岚山区玉泉实验中学的30信用小课堂出门旅游遇陷阱?小编教你这样维权随着天气转暖,国内游客的春游热情持续高涨。多个平台发布数据显示,今年清明及五一假期用户旅游消费需求增长显著,露营采茶踏青赏花等项目受到热捧,长线游需求走高。今年清明假期虽没有调休,
北方的冬天今年来的格外早入冬后的清晨格外冷,早起六点多为了错峰下楼,将自行车推下去,还是穿着昨天的衣服却有点冷了,单衣已经是昨天的事了,回去换了带毛毛的厚衣服才感觉暖和了一点,北方的冬天是来的真快啊。骑行散文胖与瘦的哲学思辩作者雷庆林头条创作挑战赛可能有人会说你老雷是不是闲的没有事儿干了,瞎写什么啊?各位看官,说我闲的这话没错。疫情期间宅在家里真是闲的无聊。不知怎的,偶然间照了一下镜子,看着镜子中的自己,心想怎当代散文万能的地瓜干文宋会强上世纪六七十年代,成年人作为劳动力不能脱离生产队劳动,有些买卖被视为投机倒把行为,更不允许私自倒卖粮食,但老家大街小巷里也会有人偷偷摸摸用大米来换地瓜干,这是来自南面招贤公双十一电视怎么选?TCL还是海信?最近些年数码家电领域更新换代太快了,在选择新产品的时候,我们很多时候都是迷茫的,甚至是我自己。电视领域,有老大哥TCL海信,也有人喜欢外国品牌三星,觉得三星的屏幕好,还有人喜欢小米电竞玩家的性价比显示器之选HKCVG273QK很多游戏玩家在配置电竞显示器的时候,往往会因为预算不够多而选择将就,入手低质低价的电竞显示器。可这种选择并不理智,因为低质电竞显示器并不能提高我们的游戏体验,反而会拖累游戏主机的性我真的很讨厌游戏中的组队机制为什么会这么深度地去玩一款挂机手游呢?因为我是真的很反感游戏中的组队机制。深耕网游十几年的时间里,我一直都是比较不合群的存在,为什么这么说?因为绝大部分网游的核心是社交。据统计在游EOSR6MarkII比预想的给力一点点佳能EOSR6MarkII终于来了。先说结论,一次常规性的,意料之中的升级。价格是16499,甚至比我预想中还便宜了500。如果你已经购买了R6,个人感觉是必要太大必要升级的,即使大屏高刷高清,这三款ROG显示器,可作为双11电竞优选专业的电竞显示设备价格普遍较高,因此活动力度较大的双11,就成了绝佳时机!而为了得到更加震撼流畅的画面效果,大屏高刷高清显示器也成为了很多次世代玩家们所关注的重点。趁着双11的活动一加双11交出满分成绩单,哪些机型让消费者大喊买买买10月31日2000,今年的双11大促迎来了第一轮集中支付尾款的高峰,相信大家也已经是满载而归。作为每年双11的保留节目,战报自然少不了,而一直以来用高性能极客风的鲜明个性示人的一运动相机和执法记录仪哪个更好用?执法记录仪代替运动相机吗?其实,这两个问题在一定程度上并不成立,因为二者的应用场景不同,放一起作比较有些不妥当。但是,奈何很多关注数码设备的发烧友们,还是想要弄清楚这个问题,那我们今天就来说一说执法记录仪和闻泰科技斯达半导士兰微谁是营运能力最强的分立器件企业?本文为企业价值系列之三营运能力篇,共选取15家分立器件企业作为研究样本。企业营运能力是指企业基于外部市场环境的约束,通过内部人力资源和生产资料的配置组合而对财务目标实现所产生作用的