Redis哨兵模式

Redis哨兵模式

一、服务器准备

Kali安装无法定位软件包问题
Kali防火墙开关
Kali开启ssh端口

安装VM虚拟机,准备三台服务器,这里kali我是之前装的,随便什么linux服务器都行

二、安装redis

没有下载权限看这篇
Redis安装参考这篇

CentOs7:systemctl stop firewalld.service(关闭)firewall-cmd --state(查看状态) 三台服务器需要开放对应的端口,或者简单点直接关闭防火墙

kaili:关闭见上文文章链接

1.Master服务器

首先安装主服务器,这里安装Redis,之后修改redis.conf配置文件,来开启服务

bash 复制代码
1.bind 192.168.1.7 //绑定监听ip
2.daemonize yes //开启后台运行
3.protected-mode no //关闭守护模式,允许外部访问
4.port 6379 //开启监听端口

2.SlaveFirst服务器

安装第一台从Redis服务器,修改Redis.conf的配置

slaveof 192.168.1.5 6379 //从服务器需要这里在redis.conf中加上这句话

bash 复制代码
1.bind 192.168.1.5 //绑定监听ip
2.daemonize yes //开启后台运行
3.protected-mode no //关闭守护模式,允许外部访问
4.port 6379 //开启监听端口
5.slaveof 192.168.1.7 6379 //配置从服务器的主服务器

3.SlaveSecond服务器

安装第一台从Redis服务器,修改Redis.conf的配置

slaveof 192.168.1.5 6379 //从服务器需要这里在redis.conf中加上这句话

bash 复制代码
1.bind 192.168.1.6 //绑定监听ip
2.daemonize yes //开启后台运行
3.protected-mode no //关闭守护模式,允许外部访问
4.port 6379 //开启监听端口
5.slaveof 192.168.1.7 6379 //配置从服务器的主服务器

三、依次开启Redis服务器

顺序:1、开启Master -》2、开启SlaveFirst-》3、开启SlaveSecond

bash 复制代码
cd /opt/redis-7.0.5/   *进入redis的解压目录中

./src/redis-server ./redis.conf  *开启Redis服务

./src/redis-cli -h 192.168.1.7 -p 6379   //打开redis的客户端,验证redis是否启动成功
				 (Redis本机服务器地址)(端口)  	

进入master,在cli中输入info信息查看如下,主从布置完毕,主服务器已经挂载两台从服务器

四、开启哨兵

1.修改Master哨兵配置文件

这三台Redis,Master和Slave的哨兵配置文件都一致
编辑哨兵配置文件

bash 复制代码
vim sentinel.conf

配置文件修改添加内容

bash 复制代码
daemonize yes

sentinel monitor mymaster 192.168.1.7  6379 2
                       (Master服务器ip) (端口) (投票数)

2.修改SlaveFirst哨兵配置文件

bash 复制代码
daemonize yes

sentinel monitor mymaster 192.168.1.7  6379 2
                       (Master服务器ip) (端口) (投票数)

3.修改SlaveSecond哨兵配置文件

bash 复制代码
daemonize yes

sentinel monitor mymaster 192.168.1.7  6379 2
                       (Master服务器ip) (端口) (投票数)

4.开启哨兵

注意,先开启上面三台主从Reids,然后再配置三台哨兵,并按master先开,再开slave顺序。

bash 复制代码
./src/redis-sentinel ./sentinel.conf

5.验证是否开启成功

Master设置key value

两台从服务器查询内容,主从复制成功


6.主从配置如下

master配置如下

salveFirst信息如下

salveSecond信息如下

现在三台机器的配置

192.168.1.7 Master

192.168.1.6 Slave

192.168.1.5 Slvae

五、挂掉Master的Redis服务器,看服务器变化

这里切换过程可能比较长点,可能要几分钟

kill掉Master,然后查看另外两台服务器信息,发现自动推举一台从服务器为Master了
查看192.168.1.7 Master,发现无法访问,

查看推举上来的Master,192.168.1.6 Slave 现在变为Mater

发现192.168.1.5 Slvae ,这台服务器的已经切换Master了。

六、哨兵配置文件自动更改

哨兵模式下的Sentinel.conf哨兵文件,会随着Mater的宕机,自动更改文件配置,重新推举一台新的Master服务器。这里是有原Master 192.168.1.7切换为192.168.1.6了

Master的redis.conf文件也会自动更改

七、再次开启原先Master

发现即使重新开启了,仍无法变为master,只能甘当小弟了。

攻守移位,现在原先的从服务器192.168.1.6变成了Master,并随着192.168.1.7原先Master的重启,192.168.1.6现在有了两个小弟

相关推荐
刘一说1 天前
2026年Java技术栈全景图:从Web容器到云原生的深度选型指南(附避坑指南)
java·前端·spring boot·后端·云原生·tomcat·mybatis
Clarence Liu1 天前
redis学习(3) - 布隆过滤器
redis·学习·哈希算法
uup1 天前
SpringBoot 集成 Redis 实现分布式 WebSocket:跨实例消息推送实战
java·redis·websocket
其美杰布-富贵-李1 天前
Spring Cache + Redis 声明式缓存指南
redis·spring·缓存
孤独天狼1 天前
redis面试题
数据库·redis·缓存
Slow菜鸟1 天前
Java工业级缓存实战系列(二):缓存穿透终极解决方案——布隆过滤器(Redisson+Redis Bloom全方案)
java·redis·缓存
蜂蜜黄油呀土豆1 天前
Redis 不只是缓存:高并发场景下的多种核心应用实践
redis·消息队列·分布式锁·缓存设计
忧郁蓝调261 天前
Redis单节点主从复制数据迁移
数据库·redis·缓存·云原生·中间件·云计算·paas
直有两条腿1 天前
【Redis】原理-网络模型
网络·数据库·redis
CRUD酱1 天前
缓存穿透、缓存击穿、缓存雪崩
数据库·redis·缓存