前一篇文章高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。

谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。

  1. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能。
  2. 复制(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. 哨兵机制建立了多个哨兵节点(进程),共同监控数据节点的运行状况。
  2. 同时哨兵节点之间也互相通信,交换对主从节点的监控状况。
  3. 每隔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哨兵、复制、集群的设计原理,以及区别相关推荐

  1. redis 一般启动几个 哨兵_Redis6.0主从、哨兵、集群搭建和原理

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 暴走大数据点击右侧关注,暴走大数据! 由 ...

  2. Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

    谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. ...

  3. Redis单机模式主从模式哨兵模式集群模式搭建

    文章目录 一.Redis下载及安装 1.1.下载 1.2.环境安装 1.3.编译安装 1.4.修改配置 1.5.启动Redis 1.6.验证Redis是否启动 1.7.进入到Redis客户端 1.8. ...

  4. 2.redis高可用-持久化-主从复制-哨兵-cluster集群概述与部署,内容依旧多看完直接通透!

    文章目录 一,Redis 高可用 1.持久化 2.主从复制 3.哨兵 4.集群(cluster) 二,Redis 持久化方式 1.持久化的功能 2.持久化的方式 三, RDB 持久化 1.触发条件 2 ...

  5. Redis数据库(四)哨兵和集群

    目录 一.Redis高可用 1.主从复制 ①概念 ②作用 ③流程 2.哨兵(至少三台redis) ①概念 ②作用 ③结构 ④故障转移机制 ⑤主节点选举 3.集群(推荐至少6台redis) ①简介 ②作 ...

  6. 哨兵模式原理_Redis哨兵、复制、集群的设计原理,以及区别

    谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. ...

  7. Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景

    高并发架构系列 高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较 高并发架构系列:Spring Cloud的核心成员.以及架构实现详细介绍 高并发架构系列:服务注册与发现的实现原理.及实 ...

  8. Redis系列教程(四):Redis为什么是单线程、及高并发快的3大原因详解

    Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间: 3.redis使用多路复用技术,可以处理并发的连接.非阻塞 ...

  9. Redis系列教程(七):Redis并发竞争key的解决方案详解

    Redis高并发的问题 Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题: 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 如何解决Redis缓 ...

最新文章

  1. IDE硬盘,SATA硬盘,SCSI硬盘有什么区别
  2. linux的write是线程安全的吗,socket的write/send还是是否是线程安全?
  3. 前端基础之JavaScript_1(一)
  4. 《Adobe Photoshop CS4中文版经典教程》—第1课1.7节检查更新
  5. ArcGIS 如何卸载再重装
  6. 电脑突然出现成功连接网络但不能上网、网络受限(解决办法)
  7. 设置嵌入式系统开机自动启动程序
  8. Nfine框架的使用
  9. 31省农村居民人均可支配收入 (2002-2018年)
  10. 时间序列预测 | Python实现GAN时间序列数据生成建模
  11. 游戏数据库数据管理系统开发体会
  12. Win32控制台应用程序如何调用另一个.exe
  13. 机电工程专业成功转行IT的真实经历
  14. python 青少年人工智能_青少年人工智能教育的典范 优必学教孩子用Python编写一部人工智能的字典...
  15. 百度网盘如何在线播放电影?
  16. IM互通新方案-GTalk to VoIP回拨服务
  17. 广告监测系统如何进行广告舆情监测?
  18. 熊梓淇 《国民老公2》看到乔安好扮演者,迫不及待想追了
  19. 奥巴马就职演说中英文对照版
  20. 3.9使用ValidationSummary控件

热门文章

  1. redis源码之main()函数剖析
  2. STM32F4 HAL 库开发报错:Hal_StatusTypeDef is undefined的解决办法
  3. CPtrArray、CObArray类
  4. TensorFlow 2.0 - tf.saved_model.save 模型导出
  5. LeetCode 764. 最大加号标志(DP)
  6. LeetCode 895. 最大频率栈(哈希+按频数存储)
  7. LeetCode 1064. 不动点(二分查找)
  8. LeetCode 547. 朋友圈(图的遍历BFS DFS)
  9. arduino yun 京东_Arduino发布多款全新升级产品,宣布将成立Arduino基金会
  10. tar linux 举例,linux 的tar 命令详解举例