环境设定
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哨兵模式实现主从故障切换的更多相关文章

  1. Redis 哨兵模式实现主从故障互切换

    200 ? "200px" : this.width)!important;} --> 介绍 Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 S ...

  2. Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步

    Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步,一定要绑定内网IP,而对于跨机房的问题,可以使用iptables进行nat转发来解决.

  3. Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存

    本片文章续<Spring Boot 入门(九):集成Quartz定时任务>.本文主要基于redis实现了mybatis二级缓存.较redis缓存,mybaits自带缓存存在缺点(自行谷歌) ...

  4. [Redis] Redis哨兵模式部署 - zz胖的博客

    1. 部署Redis集群 redis的安装及配置参考[redis部署] 本文以创建一主二从的集群为例. 1.1 部署与配置 先创建sentinel目录,在该目录下创建8000,8001,8002三个以 ...

  5. Redis 哨兵模式(Sentinel)

    上一篇我们介绍了 redis 主从节点之间的数据同步复制技术,通过一次全量复制和不间断的命令传播,可以达到主从节点数据同步备份的效果,一旦主节点宕机,我们可以选择一个工作正常的 slave 成为新的主 ...

  6. Redis哨兵模式大key优化

    目前,Redis哨兵模式,内存资源有限,有很多key大于500M,性能待优化.需要迁移至Redis-cluster集群中.        涉及到的key如下: 0,hash,duser_record, ...

  7. Springboot2.x集成Redis哨兵模式

    Springboot2.x集成Redis哨兵模式 说明 Redis哨兵模式是Redis高可用方案的一种实现方式,通过哨兵来自动实现故障转移,从而保证高可用. 准备条件 pom.xml中引入相关jar ...

  8. 搭建redis哨兵模式

    搭建redis哨兵模式,一主两从三哨兵   1.从官网下载redis安装包:此处是redis-5.0.7.tar.gz 2.上传到目录 /utxt/soft 3.解压 4.cd /utxt/soft/ ...

  9. Redis哨兵模式的配置

    绪论 现有三台设备,192.168.137.11.192.168.137.12和192.168.137.13,要求在三台设备上实现redis哨兵模式,其中192.168.137.11为master,其 ...

随机推荐

  1. Java自学-类和对象 访问修饰符

    Java的四种访问修饰符 成员变量有四种修饰符 private 私有的 package/friendly/default 不写 protected 受保护的 public 公共的 比如public 表 ...

  2. WebStrom安装Markdown插件

    安装步骤 File→Settings→Plugins→关键字搜索markdown→选择Markdown Navigator→点击Install→出现下载弹窗,等待下载完毕→重启Webstrom 效果预 ...

  3. AtCoder Grand Contest 014

    AtCoder Grand Contest 014 A - Cookie Exchanges 有三个人,分别有\(A,B,C\)块饼干,每次每个人都会把自己的饼干分成相等的两份然后给其他两个人.当其中 ...

  4. 云计算入门(一)、使用vagrant+virtualbox安装虚机

    一.vagrant和virtaulbox简介 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,我们可以使用它来干如下这些事: 建立和删除虚拟机配置虚拟机运行参数管理虚拟机运行状态 ...

  5. 《即时消息技术剖析与实战》学习笔记6——IM系统如何保证消息的安全性

    在消息产生.流转的各个环节中,需要保证消息传输安全性.消息存储安全性.消息内容安全性. 一.消息传输安全性 消息传输的重要防范点有两个,一是访问入口安全,二是传输链路安全. 1.HttpDNS保证访问 ...

  6. Linux 笔记 - 第二十四章 配置 Tomcat

    一.前言 Tomcat 是 Apache 软件基金会(Apache Software Foundation)Jakarta 项目中的核心项目,由 Apache.Sun 和其他一些公司及个人共同开发.使 ...

  7. Application类-欢迎页(初始界面)

    在程序界面显示前,如果我们处理了很多耗时操作,这个时候给用户提示一个欢迎页便是十分友好的.WPF为我们提供了这个特性: 第一种方法:通过设置图片资源的生成操作 粘贴一个图片到我们的项目中 在解决方案管 ...

  8. VS报错,Metadata file 'xxx.dll' could not be found

    错误提示“Metadata file 'xxx.dll' could not be found”步骤如下:1.右键单击解决方案,然后单击“属性”.2.单击左侧的配置.3.确保选中了它找不到的项目的“生 ...

  9. 获取PostgreSQL数据库中得JSON值

    在PostgreSQL数据库中有一列为JSON,要获取JSON中得数据可以用下面sql: select orderno as OrderNo ,amount as Amount ,ordertime ...

  10. 关于final

    最近见的一道选择题 刚学习一直认为final修饰,为常量,必须声明时被初始化,现在又明白第二种情况可以通过创建对象之后由构造方法立即初始化. 1.final修饰类不能被继承 2.final修饰方法不能 ...