搭建哨兵模式reids、redis从节点脱离哨兵集群

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 搭建哨兵模式reids、redis从节点脱离哨兵集群

安装单机reids详细教程:https://blog.csdn.net/CharmaineXia/article/details/125297843?spm=1001.2014.3001.5502

搭建主从模式集群redis:https://blog.csdn.net/CharmaineXia/article/details/125298465


0.哨兵模式简介

为了防止主从模式中reids主节点宕机以后,整个集群都无法使用,哨兵监视着redis主节点,如果主节点宕机,哨兵会在redis从节点中选出一个当做主节点。

一台哨兵也有自己宕机的风险,所以一般会开启多个哨兵,哨兵之间相互通信,主节点宕机后,哨兵们会通过“投票机制”在从节点中选出redis主节点。

哨兵模式在包含主从模式优点的基础上,还增加了稳定性。

哨兵模式建立在主从模式之上,搭建哨兵前先建好主从模式。

哨兵也要搭建集群,一主二从共有3个reids进程、3个哨兵进程。

三台服务器都配置哨兵文件,并启动哨兵,先配置好一台服务器的哨兵配置文件,然后把配置文件复制到其他服务器即可。


1.设置配置文件路径(非必做)

①创建新目录,原生的sentinel.conf做备份,启动只用以下路径的配置文件。

mkdir /home/admin/redis/redis-5.0.7/redisSentinel

②把配置文件复制过去

cp -r mkdir /home/admin/redis/redis-5.0.7/sentinel.conf /home/admin/redis/redis-5.0.7/redisSentinel


2.修改哨兵配置文件

①修改配置文件

vi /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf

## 修改1:让sentinel服务后台运行

daemonize yes

## 修改2:增加日志文件路径

logfile “/home/admin/redis/redis-5.0.7/sentinel.log”

## 修改3:增加redis主节点信息和需要进行选举的法定个数(2代表只有2个哨兵节点同时认为master节点时效时,才算真正的失效)

把sentinel monitor mymaster 127.0.0.1 6379 2改成

sentinel monitor mymaster 192.168.60.83 6379 2


②如果配置文件是复制过来的,还需要注释哨兵的myid,启动哨兵后生成新的myid。

不然哨兵的myid相同,哨兵间无法通信。

③查看修改后的配置文件

cat sentinel.conf |grep -v “#”|grep -v “^$”


3.运行哨兵

①启动三台redis服务(先启主机,后启从机)

cd /usr/local/bin/

./redis-server /home/admin/redis/redis-5.0.7/theRedisConf/redis.conf

②启动三台哨兵服务(先启主机,后启从机)

cd /usr/local/bin/

./redis-sentinel /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf

4.全部启动后查看哨兵的配置文件

cat /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf |grep -v “#”|grep -v “^$”


5.校验哨兵是否启动成功

①连接哨兵:

redis-cli -p 26379或者进到src下执行 ./redis-cli -p 26379

②查询当前节点状态:

info sentinel

127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.60.83:6379,slaves=2,sentinels=3

③查看主节点状态

sentinel master mymaster

④查看从节点状态

sentinel slaves mymaster

⑤查看所有哨兵状态

sentinel sentinels mymaster

6、让从节点脱离哨兵集群的测试:

前提:哨兵模式(3个redis:60.83(主节点)、60.84、60.85,以及3个哨兵)

redis从节点执行“SLAVEOF NO ONE”命令,将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。


测试1:启动三个哨兵,60.85执行变主节点命令,马上查询信息变为主节点,自身没有从节点。同时查询60.83仍然是主节点,60.85仍是它的从节点。过不到一分钟查看60.85变回60.83的从节点(下图为60.83的信息)。

结论:哨兵的配置文件中记录着redis主节点和从节点的IP,一旦哨兵发现某个从节点“独立”了,会把这个从节点拉回redis集群中。测试1从节点脱离主节点失败。



测试2:关闭所有哨兵,60.85执行变主节点命令,马上查询信息变为主节点,自身没有从节点。同时查询60.83仍然是主节点,60.85不再是它的从节点。过一分钟查看60.85没有变回60.83的从节点。


重启60.85服务后,查看60.83,60.85成为了60.83的从节点,查看60.85显示为60.83的从机。

结论:因为60.85的配置文件中将60.83设置为主节点,重启60.85的服务后将回归为60.83的从节点。


最后的结论:命令是即时生效的,配置文件中的设置是每次启动服务时生效的,当执行了“SLAVEOF NO ONE”只会暂时让redis从机脱离集群(不开哨兵的情况下)。想要让redis从机60.85永久的从哨兵模式的redis集群中脱离,需要关闭redis从机60.85和所有哨兵,再删除redis从机60.85配置文件中的redis主机60.83的IP信息、所有哨兵配置文件中关于redis从机60.85的IP信息,最后重启edis60.85和所有哨兵。


相关文章
|
2月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
207 2
|
13天前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
6月前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
200 5
|
22天前
|
存储 运维 NoSQL
Redis集群模式
Redis集群是一种分布式存储方案,旨在解决数据存储容量不足的问题。它通过将数据分片存储在多个节点上,实现数据的横向扩展。常见的分片算法包括哈希求余、一致性哈希和哈希槽分区。其中,Redis采用哈希槽分区算法,将数据均匀分配到16384个槽位中,每个分片负责一部分槽位。当节点故障时,集群通过故障检测和主从切换机制,确保服务的高可用性。集群还支持自动的数据迁移和负载均衡,保障系统稳定运行。
|
2月前
|
存储 NoSQL 算法
Redis的集群架构与使用经验
本文介绍了Redis的集群架构与使用经验,包括主从复制、哨兵集群及Cluster分片集群的应用场景与实现原理。内容涵盖Redis主从同步机制、数据分片存储方式、事务支持及与Memcached的区别,并讨论了Redis内存用尽时的处理策略。适用于了解Redis高可用与性能优化方案。
|
3月前
|
负载均衡 NoSQL Redis
【赵渝强老师】Redis的主从复制集群
Redis主从复制是指将一台Redis服务器的数据复制到其他Redis服务器,实现数据热备份、故障恢复、负载均衡及高可用架构的基础。主节点负责写操作,从节点同步数据并可提供读服务,提升并发处理能力。
100 5
|
6月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
7月前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用的算法是哈希槽分区算法。Redis集群中有16384个哈希槽(槽的范围是 0 -16383,哈希槽),将不同的哈希槽分布在不同的Redis节点上面进行管理,也就是说每个Redis节点只负责一部分的哈希槽。在对数据进行操作的时候,集群会对使用CRC16算法对key进行计算并对16384取模(slot = CRC16(key)%16383),得到的结果就是 Key-Value 所放入的槽,通过这个值,去找到对应的槽所对应的Redis节点,然后直接到这个对应的节点上进行存取操作
|
8月前
|
缓存 NoSQL Redis
Redis原理—3.复制、哨兵和集群
详细介绍了Redis的复制原理、哨兵原理和集群原理。
|
10月前
|
存储 NoSQL Redis
redis主从集群与分片集群的区别
主从集群通过主节点处理写操作并向从节点广播读操作,从节点处理读操作并复制主节点数据,优点在于提高读取性能、数据冗余及故障转移。分片集群则将数据分散存储于多节点,根据规则路由请求,优势在于横向扩展能力强,提升读写性能与存储容量,增强系统可用性和容错性。主从适用于简单场景,分片适合大规模高性能需求。
387 5

热门文章

最新文章