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,其 ...
随机推荐
- 第二十节:Asp.Net Core WebApi生成在线文档
一. 基本概念 1.背景 使用 Web API 时,了解其各种方法对开发人员来说可能是一项挑战. Swagger 也称为OpenAPI,解决了为 Web API 生成有用文档和帮助页的问题. 它具有诸 ...
- Matlab中添加语音处理(voicebox)工具箱
系统环境 win10+Matlab2017b 下载voicebox工具箱 官方下载:http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.zip ...
- Java : JavaWeb和Tomcat相关
部署:1.直接把项目移动到webapps文件夹下, 用文件夹名访问(如果ROOT文件夹可以直接访问)2.也可以把war包放到webapps文件夹下, tomcat自动解压,但是删除war包必须要停止t ...
- .Net Core 学习路线图
今天看 草根专栏 这位大牛的微信公众号,上面分享了一张来自github的.net core学习路线图,贴在这里,好让自己学习有个方向,这么一大页竟然只是初级到高级的,我的个乖乖,太恐怖了. 感谢大牛 ...
- Markdown温故知新(4):更多扩展语法及HTML
1.强调(删除 & 高亮) 2.脚注(注脚) 3.数学公式 4.更多扩展语法 5.终极扩展之内嵌 HTML 5.1.文本修饰类标签 5.2.内容排版类标签 5.3.图片及多媒体标签 5.4.锚 ...
- web dom api中的Selection和Range
如果你做过wysiwyg这样的app,一个很让人头疼的问题是如何保证执行bold,italic等格式化操作后保持先前鼠标所在的位置.要好好的解决这个问题,就必须将Selection和Range的api ...
- 记录下vue keep-alive IOS下无法保存滚动scroll位置的问题
最近 做的项目,遇到了一点小麻烦,就是我一个页面A页面是加载 列表数据 ,B页面是展示详细信息的.A进去B时,缓存A页面. 效果 做出来 后,缓存是缓存数据 了,但是当我A页面的列表数据 好多,要滚动 ...
- js 数组 添加或删除 元素 splice 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素 filter
里面可以用 箭头函数 splice 删除 增加 数组 中元素 操作数组 filter 创建新数组 检查指定数组中符合条件的所有元素
- win中Oracle简易客户端和plsql的配置
连接数据库有2种方式:在本机安装Oracle数据库或者是安装一个oracle简易客户端 当然,简易客户端跟oracle数据库比较少了一些功能 连接方式: 1)简易连接 sqlplus scott/ti ...
- Mysql 主从报错:1141
主从同步,从库报错代码:1141 ,错误信息如下: Master_Port: 3306 Connect_Retry: 60 Master_Log_File: binlog.000086 Read_Ma ...