为什么redis哨兵集群只有2个节点无法正常工作?

由于redis的响应速度快,每秒支持的并发极高(号称10万),现在redis越来越流行了
redis支持的存储有: string, hash(map),list, set, sortset 同时可以使用redis的setnx 来实现分布式锁
首先谈谈redis的哨兵模式:

哨兵支持对主从的监控,并且当主节点挂机之后,可以启动从节点升级为主节点继续提供服务
同时哨兵也支持对客户端提供发现服务,客户端通过连接哨兵从而获取主节点的信息,如果主节点挂机,在升级从节点为主节点之后,客户端通过哨兵可以连接上新的主节点
主节点和从节点之间通过同步写命令来保持数据一致(在启动的时候会立刻先同步主节点的快照,保存主节点的信息)
判断节点是否宕机并且需要重启需要几个哨兵协同判断,当一定数量的哨兵(可配置) 认为主节点宕机才会去升级从节点
接下来谈谈redis的集群模式

redis集群从多主多从共同支撑,至少需要三个主节点才能启动集群
每个集群包含 16384个槽 ,每一个主(从节点负责同步主节点的数据)负责存储其中的某一个槽,redis 通过对key的hash 确定存储在哪一个槽上面,
当需要加入新的节点或者删除节点的时候 ,redis 会去维护不同主节点上面的槽,从而重新分配槽的所属
为什么redis哨兵集群只有2个节点无法正常工作?

哨兵集群必须部署2个以上节点
如果哨兵集群仅仅部署了个2个哨兵实例,quorum=1

Configuration: quorum = 1
master宕机,s1和s2中只要有1个哨兵认为master宕机就可以还行切换,同时s1和s2中会选举出一个哨兵来执行故障转移
同时这个时候,需要majority,也就是大多数哨兵都是运行的,2个哨兵的majority就是2(2的majority=2,3的majority=2,5的majority=3,4的majority=2),2个哨兵都运行着,就可以允许执行故障转移
但是如果整个M1和S1运行的机器宕机了,那么哨兵只有1个了,此时就没有majority来允许执行故障转移,虽然另外一台机器还有一个R1,但是故障转移不会执行
经典的3节点哨兵集群

Configuration: quorum = 2,majority
如果M1所在机器宕机了,那么三个哨兵还剩下2个,S2和S3可以一致认为master宕机,然后选举出一个来执行故障转移
同时3个哨兵的majority是2,所以还剩下的2个哨兵运行着,就可以允许执行故障转移

原文地址:https://blog.51cto.com/14587687/2448504

时间: 2024-11-05 16:39:17

为什么redis哨兵集群只有2个节点无法正常工作?的相关文章

11.Redis 哨兵集群实现高可用

作者:中华石杉 Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis master 和 slave 进程是否正常工作. 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员. 故障转移:如果 master node 挂掉了,会自动转移到 slave node 上. 配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址

三台服务器上离线安装redis哨兵集群,一主二从三哨兵

三台服务器上离线安装redis哨兵集群,一主二从三哨兵 系统安装好gcc环境,(不然编译redis会报错).依旧不知道怎么离线安装gcc环境的可查看CentOS下离线安装gcc环境,图文详细 下载 点击官网地址下载Linux版的redis http://download.redis.io/releases/redis-5.0.4.tar.gz 上传 put D:\AppStore\redis\redis-5.0.4.tar.gz /root 安装 tar xzf redis-5.0.4.tar.

【Redis哨兵集群】

目录 开始配置主从复制 开始配置Redis Sentinel @ *** 在开始之前,我们先来看看Redis的主从复制 主从复制原理: 从服务器向主服务器发送SYNC命令. 主服务器接到SYNC命令后,会调用BGSAVE命令,创建一个RDB文件,并使用缓冲区记录接下来执行的所有写命令. 当主服务器执行完BGSAVE命令后,会向从服务器发送RDB文件,而从服务器则会接收并执行这个文件. 主服务器将缓冲区存储的所有写命令发送给从服务器执行. --------- Redis主从复制使用的是RDB备份方

Redis 哨兵集群实现高可用

哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis master 和 slave 进程是否正常工作. 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员. 故障转移:如果 master node 挂掉了,会自动转移到 slave node 上. 配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址. 哨兵用于实现 redis 集群的高可用,本身

redis 哨兵集群原理及部署

复制粘贴自: https://www.cnblogs.com/kevingrace/p/9004460.html 请点击此链接查看原文. 仅供本人学习参考, 如有侵权, 请联系删除, 多谢! Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. 一.sentinel哨兵模式介绍Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel

redis哨兵集群的搭建

Linux里插入 i 退出并保存 esc :wq  按enter键 搭建哨兵:(主服务器用来插入,从服务器用来做查询) 1.复制conf文件 2.主服务器为:master    从服务器为:slaves 3.分别修改从服务器conf配置文件中的端口号,并设置本机ip的主服务器端口号 4.退出并保存 5.启动客户端 ./redis-cli 6.输入  info 可看到如下信息:   7.退出  quit 8.进入从服务器的命令  ./redis-cli -p 6380 进的就是6380的服务器 9

10、redis哨兵集群高可用

1 Redis的分片技术 1.1 分片介绍 1.1.1 传统方式的问题 说明:如果采用单台redis时,如果redis出现宕机现象.那么会直接影响我们的整个的服务. 1.1.2 采用分片模式 说明:由一台redis扩展到多台redis.由多台redis共同为用户提供服务.并且每台redis中保存1/N的数据. 好处:如果一台redis出现了问题.不会影响整个redis的服务. 1.1.3 配置多台redis 说明:将redis.conf文件拷贝3份到shard文件夹下.分别形成6379/6380

docker-compose搭建redis哨兵集群

头脑风暴 出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式. Redis Sentinel为Redis提供高可用性,这意味着使用Sentinel可以创建Redis HA部署,该部署可以在无需人工干预的情况下抵抗某些类型的故障. Redis Sentinel提供的主要功能是: 当主节点发生故障时,它将自动选择一个备用节点并将其升级为主节点. 它是如何做到的,它会定期检查Re

redis哨兵集群

Sentinel 哨兵 修改src下的sentinel.conf文件 , 配置端口  :port:随便   daemonize yes 配置主服务器的ip 和端口 我们把监听的端口修改成7000,并且加上权值为1,这里的权值,是用来计算我们需要将哪一台服务器升级升主服务器 sentinel monitor <master-name> <ip> <redis-port> <quorum> sentinel monitor master-name 127.0.0