cnetos 做网站服务,网站优化报告,教育类网站怎么做,wordpress炫酷背景前一篇文章高并发架构系列#xff1a;Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因#xff0c;本篇主要谈Redis的高可用#xff0c;两篇合起来就可以把redis的高并发和高可用搞清楚了。 谈到Redis服务器的高可用#xff0c;如何保证备份的机器… 前一篇文章高并发架构系列Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因本篇主要谈Redis的高可用两篇合起来就可以把redis的高并发和高可用搞清楚了。 谈到Redis服务器的高可用如何保证备份的机器是原始服务器的完整备份呢这时候就需要哨兵和复制。 哨兵Sentinel可以管理多个Redis服务器它提供了监控提醒以及自动的故障转移的功能。 复制Replication则是负责让一个Redis服务器可以配备多个备份的服务器。 Redis正是利用这两个功能来保证Redis的高可用。 哨兵sentinal 哨兵是Redis集群架构中非常重要的一个组件哨兵的出现主要是解决了主从复制出现故障时需要人为干预的问题。 1.Redis哨兵主要功能 1集群监控负责监控Redis master和slave进程是否正常工作 2消息通知如果某个Redis实例有故障那么哨兵负责发送消息作为报警通知给管理员 3故障转移如果master node挂掉了会自动转移到slave node上 4配置中心如果故障转移发生了通知client客户端新的master地址 2.Redis哨兵的高可用 原理当主节点出现故障时由Redis Sentinel自动完成故障发现和转移并通知应用方实现高可用性。 哨兵机制建立了多个哨兵节点进程共同监控数据节点的运行状况。 同时哨兵节点之间也互相通信交换对主从节点的监控状况。 每隔1秒每个哨兵会向整个集群Master主服务器Slave从服务器其他Sentinel哨兵进程发送一次ping命令做一次心跳检测。 这个就是哨兵用来判断节点是否正常的重要依据涉及两个新的概念主观下线和客观下线。 1. 主观下线一个哨兵节点判定主节点down掉是主观下线。 2.客观下线只有半数哨兵节点都主观判定主节点down掉此时多个哨兵节点交换主观判定结果才会判定主节点客观下线。 3.原理基本上哪个哨兵节点最先判断出这个主节点客观下线就会在各个哨兵节点中发起投票机制Raft算法选举算法最终被投为领导者的哨兵节点完成主从自动化切换的过程。 Redis 复制Replication Redis为了解决单点数据库问题会把数据复制多个副本部署到其他节点上通过复制实现Redis的高可用性实现对数据的冗余备份保证数据和服务的高度可靠性。 1.数据复制原理执行步骤 ①从数据库向主数据库发送sync数据同步命令。 ②主数据库接收同步命令后会保存快照创建一个RDB文件。 ③当主数据库执行完保持快照后会向从数据库发送RDB文件而从数据库会接收并载入该文件。 ④主数据库将缓冲区的所有写命令发给从服务器执行。 ⑤以上处理完之后之后主数据库每执行一个写命令都会将被执行的写命令发送给从数据库。 注意在Redis2.8之后主从断开重连后会根据断开之前最新的命令偏移量进行增量复制。 Redis 主从复制、哨兵和集群这三个有什么区别 1.主从模式读写分离备份一个Master可以有多个Slaves。 2.哨兵sentinel监控自动转移哨兵发现主服务器挂了后就会从slave中重新选举一个主服务器。 3.集群为了解决单机Redis容量有限的问题将数据按一定的规则分配到多台机器内存/QPS不受限于单机可受益于分布式集群高扩展性。 哨兵作用于高可用集群提高并发量具体Redis集群方案详情可以参考高并发架构系列详解Redis的存储类型、集群架构、以及应用场景 你可能也喜欢: Redis系列教程三如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 Redis系列教程(八)分布式锁的由来、及Redis分布式锁的实现详解Redis系列教程九Redis的内存回收原理及内存过期淘汰策略详解 Redis系列教程一Redis缓存的设计、性能、应用与数据集群同步 Redis系列教程(六)Redis缓存和MySQL数据一致性方案详解Redis系列教程四Redis为什么是单线程、及高并发快的3大原因详解