谈到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不受限于单机,可受益于分布式集群高扩展性。

本文由博客一文多发平台 OpenWrite 发布!

哨兵模式原理_Redis哨兵、复制、集群的设计原理,以及区别相关推荐

  1. Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

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

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

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

  3. down redis集群_redis有哪些集群模式

    Redis集群一般有5种: 1,主从复制 2,哨兵模式 3,Redis官方提供的Cluster集群模式(服务端) 4,Jedis sharding集群(客户端sharding) 5,利用中间件代理,比 ...

  4. MySQL架构原理(七)集群架构和主从模式部署

    目录 集群架构设计 架构设计理念 可用性设计 一致性设计 主从模式 适用场景 实现原理 主从复制 半同步复制 并行复制 MySQL 5.6并行复制原理 MySQL 5.7并行复制原理 MySQL8.0 ...

  5. 一文道明Redis集群架构工作原理及搭建

    文章目录 前言 一.Redis-Cluster(集群)长什么样子? 二.Redis-Cluster集群搭建 1. Redis集群搭建 2. 客户端测试 3. 增加主节点(6000)到集群环境中 4. ...

  6. Redis主从集群搭建及其原理

    Redis主从集群搭建及其原理 1.Redis主从 1.1.搭建主从架构 1.2.准备实例和配置 1.3.启动 1.4.开启主从关系 1.5.测试 2.主从数据同步原理 2.1.全量同步 2.2.增量 ...

  7. 集群概述及原理笔记(1)

    it你好linux学习文档之集群概述及原理笔记(1) 一 前言 目前,越来越多的网站采用Linux操作系统,提供邮件.Web.文件存储.数据库等服务.也有非常多的公司在企业内部网中利用Linux服务器 ...

  8. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  9. Mysql8 group replication组复制集群单主多主模式切换

    Mysql8 MGR集群操作图解 声明与简介 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理.本文主要介绍mysql的MGR集群的操作. My ...

最新文章

  1. 【干货】交换机密码恢复教程
  2. HBase在CentOS上分布集群安装
  3. 大屏网页手机缩放html,大屏页面三种缩放
  4. springboot 集成redis_一文详解Spring Boot 集成 Redis
  5. php采集器分析功能实现
  6. mysql join子查询_MySQL的多表join中,子查询伤不起啊!
  7. 浅谈语音识别技术的发展趋势与应用前景 - 全文
  8. 如何实现实时文本过滤
  9. 叮铃铃~: 一个前端铃声/提示音组件
  10. Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】
  11. delphi实现FTP上传与下载
  12. AUC(Area under Curve Roc曲线下面积)计算方法总结
  13. nagios监控系统
  14. mysql 有没有minus_MySQL实现差集(Minus)和交集(Intersect)
  15. 图解Topo拓扑排序
  16. 剑指offer55 二叉树的深度 捏软柿子
  17. 1.mysql sql语句介于两者时间之内的增删改查操作
  18. linux下autocad完美替代品ARES Commander的安装运行
  19. asp.net core mvc 错误处理 ExceptionFilterAttribute
  20. oracle匹配靓号的正则表达式_正则表达式(靓号过滤)

热门文章

  1. Yacc 与 Lex 快速入门
  2. nginx https http2
  3. go 打印 %v %+v %#v 的区别
  4. HadoopIO和javaIO的区别
  5. leetcode 566. Reshape the Matrix | 566. 重塑矩阵(Java)
  6. SpringBoot+Dubbo集成ELK实战
  7. hadoop2.6.0安装详细步骤
  8. 【最简解法】1048 Find Coins (25 分)_18行代码AC
  9. 应该掌握的神奇函数——sscanf的用法
  10. 简介明了——map+multimap头文件函数详解