当前位置: 首页 > news >正文

建设部四库一平台网站云南文山三七

建设部四库一平台网站,云南文山三七,百度搜索排名服务,网站建设原理试卷转自 极客时间 Redis 亚风 原文视频#xff1a;https://u.geekbang.org/lesson/535?article681062 Redis 同步 Redis主从数据同步,主从第⼀次同步是全量同步 replicaof 主机 端口 #当前这个机器做Master的备份master如何判断slave是不是第⼀次来同步数据#xff1a; Repl…转自 极客时间 Redis 亚风 原文视频https://u.geekbang.org/lesson/535?article681062 Redis 同步 Redis主从数据同步,主从第⼀次同步是全量同步 replicaof 主机 端口 #当前这个机器做Master的备份master如何判断slave是不是第⼀次来同步数据 Replication ld简称replid是数据集的标记id⼀致则说明是同⼀数据集。每⼀个master都有唯⼀的replidslave则会继承master节点的replid。 Offset偏移量随着记录在repl_baklog中的数据增多⽽逐渐增⼤。slave完成同步时也会记录当前同步的offset。 如果slave的offset⼩于master的offset说明slave数据落后于master需要更新。 因此slave做数据同步必须向master声明⾃⼰的replication id 和offsetmaster才可以判断到底需要同步哪些数据。 如果slave重启后同步会进⾏增量同步。 repl_baklog⼤⼩有上限写满后会覆盖最早的数据。如果slave断开时间过久导致数据被覆盖则⽆法实现增量同步只能再次全量同步。slave 和Master 始终保持着一点差距也就是上面的Slave 节点追不上 Master 节点了超过一圈后面的数据就被重写了。 可以从以下⼏个⽅⾯来优化Redis主从集群 在master中配置repl-diskless-sync yes启⽤⽆磁盘复制(需要看网络带宽作为了解不太实用)避免全量同步时的磁盘IO。 Redis单节点上的内存占⽤不要太⼤减少RDB导致的过多磁盘IO 适当提⾼repl_baklog的⼤⼩发现slave宕机时尽快实现故障恢复尽可能避免全量同步 ⼀个master上的slave节点数量如果实在是太多slave则可以采⽤主-从-从链式结构减少master压⼒。 哨兵 slave节点宕机恢复后可以找master节点同步数据那master节点宕机怎么办 Redis提供了哨兵(Sentinel机制来实现主从集群的⾃动故障恢复。哨兵的结构和作⽤如下 • 监控Sentinel 会不断检查master和slave是否按预期⼯作 • ⾃动故障恢复如果master故障Sentinel会将⼀个slave提升为master。当 故障实例恢复后也以新的master为主 • 通知Sentinel充当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⼤⼩越⼩优先级越⾼ 当选中了其中⼀个slave为新的master后例如slave1故障的转移的步骤如下 1sentinel给备选的slave1节点发送slaveof no one命令让该节点成为master。 2 sentinel给所有其它slave发送slaveof ip port命令让这些slave成为新master的从节点开始从新的master上同步数据。 3Sentinel将故障节点标记为slave修改配置当故障节点恢复后会⾃动成为新的master的slave节点。 sping 针对主从的应用 spring.redis.sentinel.mastermymaster spring.redis.sentinel.nodeip:port,ip:port连接Sentinel的时候需要指定这个bean 这⾥的ReadFrom是配置Redis的读取策略是⼀个枚举包括下⾯选择 MASTER 从主节点读取 MASTER_PREFERRED优先从master节点读取master不可⽤才读取replica REPLICA: 从slave (replica节点读取 REPLICA_PREFERRED优先从slave (replica节点读取所有的slave都不可⽤才读取master Redis 分片集群 主从和哨兵可以解决⾼可⽤、⾼并发读的问题。但是依然有两个问题没有解决 • 海量数据存储问题 • ⾼并发写的问题 使⽤分⽚集群可以解决上述问题分⽚集群特征 • 集群中有多个master每个master保存不同数据 • 每个master都可以有多个slave节点 • master之间通过ping监测彼此健康状态 • 客户端请求可以访问集群任意节点最终都会被转发到正确节点 Redis会把每⼀个master节点映射到0~16383共16384个插槽 (hash slot上查看集群信息时就能看到 数据key不是与节点绑定⽽是与插槽绑定。redis会根据key的有效部分计算插槽值分两种情况 Key中包含{}且{}中⾄少包含1个字符{}中的部分是有效部分 key中不包含{}整个key都是有效部分 例如key是num那么就根据num计算如果是{a}num则根据a计算。计算⽅式是利⽤CRC16算法得到⼀个hash值然后对16384取余得到的结果就是slot值。 cluster failover命令可以⼿动让集群中的某个master宕机切换到执⾏cluster failover命令的slave节点实现⽆感知的数据迁移。⼿动的failover⽀持三种不同模式 • 缺省默认的流程如下面的图 不常用下面两个命令 • force省略了对offset的⼀致性校验不管当前节点是否与Master有距离 • takeover直接执⾏第5歩忽略数据⼀致性、忽略master状态和其它master的意⻅
http://www.yingshimen.cn/news/171025/

相关文章:

  • 珠海网站开发维护科技公司wordpress文章发布没有页面
  • 网站开发 书籍宁波新亚建设公司网站
  • 重庆哪家做网站网站制作工具
  • 网站怎么做电脑系统下载软件seo网络营销招聘
  • 网站建设制作开发安徽建设厅证书查询网网站
  • 什么平台可以做网站wordpress被扫描
  • 网站建设都需要哪些东西c2c的电子商务网站有哪些
  • 上饶专业做网站建设石家庄全网推广
  • 如何做网站客户端安阳七彩祥云网络公司
  • 为什么原网站建设公司不愿意透露域名管理权限给客户上海中艺建设集团网站
  • 百度站长工具使用方法时事新闻最新
  • 企业网站icp备案申请天津网上办事大厅入口
  • 长春火车站什么时候通车dedecms 股票网站模板
  • 功能性质网站wordpress切换成中文字体
  • 河南搜索引擎推广价格关键词优化一般收费价格
  • 网站建设类文章金蝶软件公司简介
  • 开个网站平台要多少钱做网站需要准备的资料
  • 网站能当做创业来做吗加载wordpress外部文件路径
  • 戒赌网站怎么做监理证查询网
  • 网站建设与管理试卷及答案黄冈网站推广策略
  • 网站建设公司价格表wordpress后台特别慢
  • 网站建设费的会计分录国外手做网站
  • 公司网站架构辽宁省城乡住房和建设厅网站
  • 广州技术支持:奇亿网站建设电商网站建设 数商云
  • 好的装修网站通辽市 做网站
  • 怎么上传自己做的网站国外室内设计网
  • 学校加强网站建设米粒网站建设
  • 深圳市建设注册中心网站网站构建培训
  • 网站建设需要哪些准备云盘可以做网站吗
  • 如何快速建立一个网站铜陵58同城做网站