哨兵模式,redis群集模式(Cluster)

哨兵模式()

哨兵模式和主从切换的区别

主从切换技术的方法是:当主服务器宕机了,手动切换从服务器当主服务器用,需要人工手动操作。
哨兵的核心功能:在主从复制的基础上,哨兵引入了 主节点的自动故障转移,比主从复制多了个哨兵集群监控

哨兵模式的原理

哨兵:是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障的时候同过哨兵集群投票机制选择新的master并将所有的slave连接到新的master。所以整个运行哨兵的集群的数量不得少于3个节点。
!!!注:当master宕机后哨兵模式开始投票,这是宕机的master又恢复了不参与新master选举的投票。以从节点加入他们新的集群中。

哨兵模式的作用

①监控
哨兵 会不断地检查主节点和从节点是否正常运作
②自动故障转移
当主节点不能正常工作的时候,哨兵会开始自动故障转移操作,他会将失效的主节点的其中一个从节点作为新的主节点使用,并让其他的从节点改为复制新的主节点。
③通知
哨兵可以将故障转移的结果发送给客户端

哨兵结构组成

哨兵节点:哨兵系统由一个或多个节点组成,哨兵节点是特殊的redis节点,不储存数据。
数据节点:主节点和从节点都是数据节点

故障转移机制

1,哨兵节点定时监控发现主节点是否出现故障
每个哨兵节点每隔一秒会向主节点发,从节点及其他哨兵节点发送一次ping作为心跳检测,如果主节点在一定时间范围内不回复或者恢复错误的消息,那么这个哨兵就会认为这个主节点主管下线(单方面)。当超过半数哨兵节点认为改主节点主观下线,就客观下线了
(客观下线):半数以上的哨兵认为该主节点主观下线。!!!主节点才会有的概念,从节点没有客观下线

2.当主节点出现故障,此时哨兵节点会通过raft算法(选举算法)实现选举机制共同选举出一个哨兵节点
为leader 来负责处理主节点的故障转移和通知,所以整个运行哨兵的集群数量不得少于3个节点
3.由leader 哨兵节点执行故障转移,过程如下
①将某一个节点升级为新的主节点,让其他从节点指向新的主节点。
②若原来的主节点恢复也会变为从节点,让其他从节点指向新的主节点。
③通知客户主节点已经更换

主节点的选举:
1.过滤掉不健康的(已下线的),没有回复哨兵 ping 响应的从节点。
2.选择配置文件中从节点优先级配置最高的。(replica-priority,默认值为100)
3.选择复制偏移量最大,也就是复制最完整的从节点。

哨兵模式依赖主从模式,所有要把主从模式安装好的情况下再去做哨兵模式

哨兵模式搭建过程

搭建redis哨兵模式
Redis哨兵模式建立在主从复制的基础上
主从复制已搭建好
首先关闭防火墙
Systemctl stop firewalld
Setenforce 0
修改主从服务器的哨兵节点
Vim /opt/redis-5.0.7/sentinel.conf
第17行关闭保护模式
在这里插入图片描述

21行,Redis哨兵默认的监听端口
在这里插入图片描述

26行,指定sentinel为后台路径
在这里插入图片描述

36行 指定日志存放路径
在这里插入图片描述

65行 指定数据库存放路径
在这里插入图片描述

在这里插入图片描述
84行修改 指定该哨兵节点监控192.168.10.22:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移

sentinel down-after-milliseconds mymaster 30000 #113行,判定服务器down掉的时间周期,默认30000毫秒(30秒)
默认不用改
sentinel failover-timeout mymaster 180000 #146行,故障节点的最大超时时间为180000(180秒)
默认不用改
启动哨兵模式先主后从
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &
查看哨兵信息
在这里插入图片描述

此时的192.168.179.129是主节点
有3个节点2个从节点1个主节点

查看主节点进程
在这里插入图片描述

杀死一个进程然后验证结果
哨兵模式开始运行
在这里插入图片描述

在此查看哨兵信息
在这里插入图片描述

主节点挂了后哨兵模式已经启动将从节点192.168.179.10选举为主节点,证明哨兵模式没有问题成功运行。

redis集群模式(cluster集群)

集群,即redis cluster 是redis3.0开始引入的分布式存储方案
集群简述
集群由多个节点组成,redis的数据分布在这些节点中,集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群的信息维护;从节点只进行主节点数据和状态的信息复制

集群的作用

(1)数据分区:数据分区(或称数据分片)是集群最核心的功能。
集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,存储容量大大增加;另一方面每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力。
Redis单机内存大小受限问题,在介绍持久化和主从复制时都有提及;例如,如果单机内存太大,bgsave和bgrewriteaof的fork操作可能导致主进程阻塞,主从环境下主机切换时可能导致从节点长时间无法提供服务,全量复制阶段主节点的复制缓冲区可能溢出。

(2)高可用:集群支持主从复制和主节点的自动故障转移(与哨兵类似);当任一节点发生故障时,集群仍然可以对外提供服务。

#Redis集群的数据分片:
Redis集群引入了哈希槽的概念
Redis集群有16384个哈希槽(编号0-16383)
集群的每个节点负责一部分哈希槽
每个Key通过CRC16校验后对16384取余来决定放置哪个哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作

Redis集群的主从复制模型

集群中具有A、B、C三个节点,如果节点B失败了,整个集群就会因缺少5461-10922这个范围的槽而不可以用。
为每个节点添加一个从节点A1、B1、C1整个集群便有三个Master节点和三个slave节点组成,在节点B失败后,集群选举B1位为的主节点继续服务。当B和B1都失败后,集群将不可用。

cluster集群搭建

Cluster集群
先关闭防火前
Systemctl stop firewalld
Setenforce 0
Cd /etc/redis/
Mkdir -p redis-cluster/redis600{1…6}

运行for脚本拷贝数据到新创建的redis6001-6中
在这里插入图片描述

Cd /opt 到opt目录下将redis 的压缩包下载进来
然后tar zxvf redis-5.0.7.tar.gz解压
进入redis-5.0.7下安装
Cd redis-5.0.7 make
Make
然后cd到etc目录下心创建的cluster下
cd /etc/redis/redis-cluster/运行for脚本

开启集群功能
改配置文件
cd /etc/redis/redis-cluster/redis6001
每个都要改
cd /etc/redis/redis-cluster/redis6002
cd /etc/redis/redis-cluster/redis6003
cd /etc/redis/redis-cluster/redis6004
cd /etc/redis/redis-cluster/redis6005
cd /etc/redis/redis-cluster/redis6006
再分别vim redis.conf
#bind 127.0.0.1
在这里插入图片描述

#69行,注释掉bind 项,默认监听所有网卡
protected-mode no
在这里插入图片描述

#88行,修改,关闭保护模式
port 6006
在这里插入图片描述

#92行,修改,redis监听端口,
daemonize yes
在这里插入图片描述

#136行,开启守护进程,以独立进程启动
cluster-enabled yes
在这里插入图片描述
#832行,取消注释,开启群集功能
cluster-config-file nodes-6001.conf
在这里插入图片描述

#840行,取消注释,群集名称文件设置
cluster-node-timeout 15000
在这里插入图片描述

#846行,取消注释群集超时时间设置

appendonly yes
在这里插入图片描述

#700行,修改,开启AOF持久化

改完之后
启动redis节点
分别进入redis6001-6的文件夹下执行命令
redis-server redis.conf 来启动redis节点

cd /etc/redis/redis-cluster/redis6001
redis-server redis.conf

运行for脚本
for d in {1…6}
do
cd /etc/redis/redis-cluster/redis600$d
redis-server redis.conf
Done
在这里插入图片描述

然后查看reidis
ps -ef | grep redis
在这里插入图片描述

启动集群
redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
中间输入yes
在这里插入图片描述

启动cluster集群成功

测试群集
Redis-cli -p 6001 -c
在这里插入图片描述

Redis-cli 6002 -c
建立一个name zsj
在这里插入图片描述

然后进入他的从节点
Redis-cli 6005 -c
在这里插入图片描述

对应的slave节点也有这个数据说明clust集群创建成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值