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,其 ...
随机推荐
- 使用eclipse git插件合并merge部分代码方法
当有一个父项目,它的下面有多个子项目:或者一个项目下边,只想合并部分路径,甚至部分文件的内容,使用下边的方法可以达到目的,特此记录: 1.主项目右键 -> team -> remove f ...
- 《跟唐老师学习云网络》 -第4篇 router路咋走啊【华为云技术分享】
[摘要] 好了,到这里至少你应该能看懂路由表信息了.给你一个目的IP,你也应该知道它会使用哪一条路由了. 路怎么走就看骚年你了~ 一.路由 其实关于网络大家遇到最多的问题就是:卧 槽,为什么不通啊! ...
- vim进阶
输入终端命令:!+命令 sudo保存:w !sudo tee % 显示当前路径::pwd 查看缓冲区::ls 打开缓冲区文件:buffer 2 命令补全:Tab键 :r!date读shell日期到vi ...
- 如何在相同的类名中单独为选中元素设置JS
很多时候,我发现对一个类名添加事件,每次都是所有同类名元素一起触发,使用 this可以仅对当前选中的元素应用事件 如 $('.guowai button').click(function() { /* ...
- 开源一些C#不常用知识(附上DEMO)
序:这其实是一个广告贴. 正文:开源一些不常用的C#DEMO,这个是专门写成DEMO的样子,来供大家查阅,当然可以提出意见啥的.或者一些需要加入的DEMO,作者可以添加上. git地址:https:/ ...
- .net web api 权限验证
做一个登录权限验证. 开始吧. using System; using System.Collections.Generic; using System.Drawing; using System.D ...
- SpringCloud学习第四章-Eureka创建
注:因为有了父项目,所以不需要引入boot的jar,项目都是maven构建 1.pom.xml <?xml version="1.0" encoding="UTF- ...
- Mysql读写分离操作
环境:两台centos环境,安装mysql(mariadb) web网站的优化: 缓存技术 数据库缓存 redis 文件缓存 图片 fastdfs 负载均衡 nginx 数据库主从备份,读写分离 图解 ...
- SpringMVC中控制器接收JSP页面表单的参数接收方式详解及细节注意(400错误)
控制器方法中参数的接收 (1)以前的参数接收: String param = req.getParameter(name): (2)SpringMVC简化这个操作,只需要给控制器方法添加参数即可 a ...
- Docker 0x08: Docker 命令
目录 Docker 命令 run 与 start 区别 docker 进程相关命令 Restful API Docker 命令 docker命令容易混淆几个 run 与 start 区别 run: 会 ...