redis哨兵模式实现主从故障切换
环境设定
base2 172.25.78.12 master
base3 172.25.78.13 slave
base4 172.25.78.14 slave
1.配置一主二从环境
在base2上
[root@base2 ~]# tar zxf redis-5.0.3.tar.gz
[root@base2 ~]# cd redis-5.0.3
[root@base2 ~]# yum install gcc -y
[root@base2 redis-5.0.3]# make && make install
[root@base2 redis-5.0.3]# which redis-cli
/usr/local/bin/redis-cli
[root@base2 redis-5.0.3]# cd utils/
[root@base2 utils]# ./install_server.sh
[root@base2 utils]# vim /etc/redis/6379.conf # 编辑配置文件
70 bind 0.0.0.0 # 监听本机所有端口
187 databases 16 # 默认数据库为16个
293 # masterauth <master-password> # 设定redis的认证,因为我们这是内网网段进行操作,所以此处不用设定
457 min-replicas-to-write 1
458 min-replicas-max-lag 10
[root@base2 utils]# systemctl restart redis_6379
[root@base2 utils]# netstat -antlp
[root@base2 redis]# redis-cli # 进入交互式界面,添加信息
在base3上
[root@base3 ~]# tar zxf redis-5.0.3.tar.gz
[root@base3 ~]# cd redis-5.0.3
[root@base3 redis-5.0.3]# yum install gcc -y
[root@base3 redis-5.0.3]# make && make install
[root@base3 redis-5.0.3]# cd utils/
[root@base3 utils]# ./install_server.sh
[root@base3 utils]# netstat -antlp
[root@base3 utils]# vim /etc/redis/6379.conf
70 bind 0.0.0.0
288 slaveof 172.25.78.12 6379 # 指定master
[root@base3 utils]# systemctl restart redis_6379
[root@base3 utils]# redis-cli # 同步成功
127.0.0.1:6379> set name xixi # 我还发现redis的一个好处,slave端默认只读
在base4上
[root@base4 ~]# tar zxf redis-5.0.3.tar.gz
[root@base4 ~]# cd redis-5.0.3
[root@base4 redis-5.0.3]# yum install gcc -y
[root@base4 redis-5.0.3]# make && make install
[root@base4 redis-5.0.3]# cd utils/
[root@base4 utils]# ./install_server.sh

[root@base4 utils]# vim /etc/redis/6379.conf
70 bind 0.0.0.0
288 slaveof 172.25.78.12 6379
[root@base4 utils]# systemctl restart redis_6379
[root@base4 utils]# redis-cli # 同步成功
2.开始配置自主故障切换
# 在master上
[root@base2 redis]# pwd
/etc/redis
[root@base2 redis]# cd
[root@base2 ~]# cd redis-5.0.3
[root@base2 redis-5.0.3]# cp sentinel.conf /etc/redis/
[root@base2 redis-5.0.3]# cd /etc/redis/
[root@base2 redis]# ls
6379.conf sentinel.conf
[root@base2 redis]# vim sentinel.conf
16 protected-mode no # 去掉保护模式
84 sentinel monitor mymaster 172.25.78.12 6379 2 # 指定要监控的master,2表示将这个主服务器判断为失效至少需要 2 个 Sentinel 同意
113 sentinel down-after-milliseconds mymaster 10000 # Sentinel 认为服务器已经断线所需的毫秒数即服务多长时间开始下线
121 sentinel parallel-syncs mymaster 1 # 在执行故障转移时,最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长
146 sentinel failover-timeout mymaster 180000 # 三分钟之内还没有完成故障切换,表示超时
注:改完这个文件之后千万不能重启
[root@base2 redis]# scp sentinel.conf base3:/etc/redis/
[root@base2 redis]# scp sentinel.conf base4:/etc/redis/
# 在三个服务上都进行监控
[root@base2 redis]# redis-server /etc/redis/sentinel.conf --sentinel &
[root@base3 redis]# redis-server /etc/redis/sentinel.conf --sentinel &
[root@base4 redis]# redis-server /etc/redis/sentinel.conf --sentinel &
# 模拟master坏掉
[root@base2 redis]# redis-cli
127.0.0.1:6379> info replication # 先查看信息
[root@base2 redis]# systemctl stop redis_6379 # 现在模拟坏掉
# 查看监控
这是master坏掉之前的监控

这是master坏掉之后的监控


# 在其余两台上查看信息,发现master已经切换
在base3上

在base4上

# 在base2上
[root@base2 ~]# vim /etc/redis/6379.conf # 修改自己的状态为slave
286 slaveof 172.25.78.14 6379 # 改为现在master的ip
[root@base2 ~]# systemctl start redis_6379
redis哨兵模式实现主从故障切换的更多相关文章
- Redis 哨兵模式实现主从故障互切换
200 ? "200px" : this.width)!important;} --> 介绍 Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 S ...
- Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步
Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步,一定要绑定内网IP,而对于跨机房的问题,可以使用iptables进行nat转发来解决.
- Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
本片文章续<Spring Boot 入门(九):集成Quartz定时任务>.本文主要基于redis实现了mybatis二级缓存.较redis缓存,mybaits自带缓存存在缺点(自行谷歌) ...
- [Redis] Redis哨兵模式部署 - zz胖的博客
1. 部署Redis集群 redis的安装及配置参考[redis部署] 本文以创建一主二从的集群为例. 1.1 部署与配置 先创建sentinel目录,在该目录下创建8000,8001,8002三个以 ...
- Redis 哨兵模式(Sentinel)
上一篇我们介绍了 redis 主从节点之间的数据同步复制技术,通过一次全量复制和不间断的命令传播,可以达到主从节点数据同步备份的效果,一旦主节点宕机,我们可以选择一个工作正常的 slave 成为新的主 ...
- Redis哨兵模式大key优化
目前,Redis哨兵模式,内存资源有限,有很多key大于500M,性能待优化.需要迁移至Redis-cluster集群中. 涉及到的key如下: 0,hash,duser_record, ...
- Springboot2.x集成Redis哨兵模式
Springboot2.x集成Redis哨兵模式 说明 Redis哨兵模式是Redis高可用方案的一种实现方式,通过哨兵来自动实现故障转移,从而保证高可用. 准备条件 pom.xml中引入相关jar ...
- 搭建redis哨兵模式
搭建redis哨兵模式,一主两从三哨兵 1.从官网下载redis安装包:此处是redis-5.0.7.tar.gz 2.上传到目录 /utxt/soft 3.解压 4.cd /utxt/soft/ ...
- Redis哨兵模式的配置
绪论 现有三台设备,192.168.137.11.192.168.137.12和192.168.137.13,要求在三台设备上实现redis哨兵模式,其中192.168.137.11为master,其 ...
随机推荐
- 获取豆瓣电影数据(R与API获取网页数据)
一般成熟的网站都会有反爬虫策略,例如限制访问次数,限制访问 IP,动态显示数据等.爬虫和反爬虫就是一直相爱相杀地互相钳制.如果要通过爬虫来获取某些大型网站的数据,那是一件很费时费力的活.小白总遭遇过在 ...
- flutter-初识(基础语法)
前言:笔者学过 java,刚刚接触 flutter,记录下基本的一些语法. 一.认识Flutter Flutter 是 google 推出的,使用的 Dart 语言,它可以跨平台实现 Android ...
- Blackbox_exporter黑盒监测
一.概述 blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http.dns.tcp.icmp 的监控数据采集.Blackbox_exporter ...
- .net 6.0 新特性
1. 属性初始化 class Person { public string Name { get; set; } public string Sex { get; set; } = "男&q ...
- 一般处理程序Session
1.要在一般处理程序中获取其他页面的session值,需要引用名空间: using System.Web.SessionState; 2.然后继承一个接口:IRequiresSessionState ...
- C#获取剪切板的内容
// GetDataObject获取当前剪贴板上的数据 IDataObject data = Clipboard.GetDataObject(); // 将数据与指定的格式进行匹配,返回bool if ...
- python 进程和线程-简介及进程
进程和线程的关系及应用 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017627212385376 多任务: 什么叫“多任务”呢?简 ...
- maven 镜像仓库 setting.xml修改 & 手动导入的包如何加到maven里面
如果不知道maven安装路径IDEA中打File->Settings 再点Build->Maven右边看maven安装路径,打开这个路径,再打开conf/settings.xml文件 ...
- testlink使用方法
1.测试项目管理 创建新项目: 类型设置成:活动的,公开的,才可以进行创建.创建完进入主页. 2.用户管理 注意:一般账号就是角色名,共6个角色,记住账号 ...
- JVM性能优化简介
01. JVM是什么 概述: 大白话: 全称Java Virtual Machine(Java虚拟机), 它是一个虚构出来的计算机, 通过实际的计算机来模拟 ...