美文网首页服务器后端开发程序员Java 杂谈
Redis哨兵、复制、集群的设计原理与区别

Redis哨兵、复制、集群的设计原理与区别

作者: _年少无为 | 来源:发表于2019-04-24 16:03 被阅读189次

前面谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。

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

哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能。

复制(Replication):则是负责让一个Redis服务器可以配备多个备份的服务器。

Redis正是利用这两个功能来保证Redis的高可用。

哨兵(sentinal)

哨兵是Redis集群架构中非常重要的一个组件,哨兵的出现主要是解决了主从复制出现故障时需要人为干预的问题。

1.Redis哨兵主要功能

  • 集群监控:负责监控Redis master和slave进程是否正常工作

  • 消息通知:如果某个Redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员

  • 故障转移:如果master node挂掉了,会自动转移到slave node上

  • 配置中心:如果故障转移发生了,通知client客户端新的master地址

2.Redis哨兵的高可用

原理:当主节点出现故障时,由Redis Sentinel自动完成故障发现和转移,并通知应用方,实现高可用性。

  1. 哨兵机制建立了多个哨兵节点(进程),共同监控数据节点的运行状况。
  2. 同时哨兵节点之间也互相通信,交换对主从节点的监控状况。
  3. 每隔1秒每个哨兵会向整个集群:Master主服务器+Slave从服务器+其他Sentinel(哨兵)进程,发送一次ping命令做一次心跳检测。

这个就是哨兵用来判断节点是否正常的重要依据,涉及两个新的概念:主观下线和客观下线。

  • 主观下线:一个哨兵节点判定主节点down掉是主观下线。

  • 客观下线:只有半数哨兵节点都主观判定主节点down掉,此时多个哨兵节点交换主观判定结果,才会判定主节点客观下线。

  • 原理:基本上哪个哨兵节点最先判断出这个主节点客观下线,就会在各个哨兵节点中发起投票机制Raft算法(选举算法),最终被投为领导者的哨兵节点完成主从自动化切换的过程。

Redis 复制(Replication)

Redis为了解决单点数据库问题,会把数据复制多个副本部署到其他节点上,通过复制,实现Redis的高可用性,实现对数据的冗余备份,保证数据和服务的高度可靠性。

1.数据复制原理(执行步骤)

  • 从数据库向主数据库发送sync(数据同步)命令。
  • 主数据库接收同步命令后,会保存快照,创建一个RDB文件。
  • 当主数据库执行完保持快照后,会向从数据库发送RDB文件,而从数据库会接收并载入该文件。
  • 主数据库将缓冲区的所有写命令发给从服务器执行。
  • 以上处理完之后,之后主数据库每执行一个写命令,都会将被执行的写命令发送给从数据库。

注意:在Redis2.8之后,主从断开重连后会根据断开之前最新的命令偏移量进行增量复制。

Redis 主从复制、哨兵和集群这三个有什么区别

主从复制是为了数据备份,哨兵是为了高可用,Redis主服务器挂了哨兵可以切换,集群则是因为单实例能力有限,搞多个分散压力,简短总结如下:

主从模式:备份数据、负载均衡,一个Master可以有多个Slaves。

sentinel发现master挂了后,就会从slave中重新选举一个master。

cluster是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器。

sentinel着眼于高可用,Cluster提高并发量。

1.主从模式:读写分离,备份,一个Master可以有多个Slaves。

2.哨兵sentinel:监控,自动转移,哨兵发现主服务器挂了后,就会从slave中重新选举一个主服务器。

3.集群:为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器,内存/QPS不受限于单机,可受益于分布式集群高扩展性。

---END---

如果觉得不错,记得点赞,关注,之后小编会不断更新~

相关文章

  • Redis哨兵、复制、集群的设计原理与区别

    前面谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞...

  • redis的三种集群方式

    redis的三种集群方式 redis有三种集群方式:主从复制,哨兵模式和集群。 1.主从复制 主从复制原理: 从服...

  • redis集群

    本章要点 Redis主从 Redis哨兵 Redis集群 主从复制原理 1. Redis 主从 比较简单在redi...

  • Redis 分布式主从架构

    Redis 集群设计的演变Redis 从最早的集群设计,演变到现在,历经了三种集群状态:(1)主从复制;(2)哨兵...

  • 8.Redis复制、哨兵、集群

    Redis复制、哨兵、集群 Redis实现高可用相关的技术,它们包括:持久化、复制、哨兵和集群,其主要作用和解决的...

  • 【5分钟背八股】redis集群方案有哪些?

    常见集群分类 主从复制集群 分片集群 redis有那些: 主从复制集群,手动切换 带有哨兵的HA的主从复制集群 客...

  • Redis的高可用

    Redis主从复制 什么是主从复制 Redis有三种集群方案,主从复制,哨兵,cluster集群,主从复制是指将一...

  • redis sentinel高可用性方案

    参考:redis官方文档,Redis 复制、Sentinel的搭建和原理说明 Redis Sentinel(哨兵)...

  • Redis第15章 复制

    Redis集群部署的三种常见方式,复制、哨兵、集群。 复制主写从读,减缓单主的访问压力。 哨兵主从切换,主服务宕机...

  • Redis高可用原理

    1 Redis高可用常见的有三种方式: 主从复制 哨兵模式 Redis集群 2 复制 在Redis中,可以通过执行...

网友评论

    本文标题:Redis哨兵、复制、集群的设计原理与区别

    本文链接:https://www.haomeiwen.com/subject/ceuggqtx.html