Redis个人心得笔记(四)
目录
一.Redis的主从关系介绍
在之前的博客里面简单提了一下Redis的主从,今天简单介绍一下
在开启的每一个Redis中都是默认主节点,总是认为自己是主角,不敢面对现实
info replication 查看主从节点
role:Master(主节点)
slave 从节点
master 主节点
通过 slaveof IP(IP地址) 端口(你要指定的主节点) 进行挂接
主节点中的数据会复制到从节点中 (防止主节点宕机,从节点能代替正常工作)
默认情况下 从节点的权限是只读,可以在配置文件中修改, 设置主从就是为了保证在主节点宕机的情况下,从节点能顶替上去,防止突发情况,但是,主节点宕机,无法从多个从节点中选举一个代替(名不正言不顺),因为没有设置哨兵进程sentinel,
二.哨兵进程介绍
- 哨兵模式(sentinel)
主从复制中反客为主的自动版。哨兵(Sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master主服务器是否下线的信息,并使用投票协议(Agreement Protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。 - 每个哨兵(Sentinel)进程会向其它哨兵(Sentinel)、Master、Slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定配置时间(可配置的)内未得到回应,则暂时认为对方已掉线,也就是所谓的”主观认为宕机” ,英文名称:Subjective Down,简称SDOWN。有主观宕机,肯定就有客观宕机。
- 当“哨兵群”中的多数Sentinel进程在对Master主服务器做出 SDOWN 的判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master Server下线判断,这种方式就是“客观宕机”,英文名称是:Objectively Down, 简称 ODOWN。通过一定的vote算法,从剩下的slave从服务器节点中,选一台提升为Master服务器节点,然后自动修改相关配置,并开启故障转移(failover)。
- 哨兵(sentinel) 虽然有一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel)。
运行原理:
单独的进程,为主从结构做监听,做选举的逻辑而出现的机制.会连接主节点,从主节点中利用info获取所有从节点的信息,发送心跳检测机制(rpc 远程通信协议完成),如果心跳检测超时,发起主节点宕机的事件投票,哨兵集群会对事件进行过半的选举,选举过程中确定新的主节点顶替.
三.哨兵搭建
哨兵开始监听 集群的代号(mymaster 自定义)主节点的IP地址需要改 改成自己的云主机Ip 2 保持最少2个哨兵存在 一定要启动的比你设置的高
修改哨兵配置 如上图 复制三个配置文件 创建三个哨兵
修改对应端口号 我设置三个为 26380 26381 26382
在开始启动哨兵前先确认设置的主从是否存在
启动一个哨兵看日志
拿到从节点信息
把主节点杀死
稍等一会 三个哨兵会发现老大死了 就开始内讧了 选举 由于是三个 所以不会发生势均力敌的情况 一定是2:1 或者3:0v
选举 6384当老大了 如果6382故意假死呢,这个时候,84已经上位了,那么他俩究竟谁是主节点呢,插入一波广告稍后继续