环境设定
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. sql server生成随机id

    SQL Server中生成随机ID的函数是newId(),但是这样生成出来的随机ID是36位带[-]符号的. select newId(); -- 746516E0-95D6-4BAF-8826-6C ...

  2. java中的7个位运算运算符

    位运算指的是针对整数的二进制进行的位移操作. 位运算提供比算术运算更高的效率,但是位运算的代码可读性较差,建议所有使用位运算的地方写上注释. Java中提供7个位运算符用于位运算. 左移(<&l ...

  3. C++分治策略实现二分搜索

    问题描述: 给定已排好序的n个元素组成的数组,现要利用二分搜索算法判断特定元素x是否在该有序数组中. 细节须知: (1)由于可能需要对分治策略实现二分搜索的算法效率进行评估,故使用大量的随机数对算法进 ...

  4. Server SQL2008对文件的基础操作—01

    1.一个文件的基本框架为:文件名.文件地址.文件大小.文件最大的大小.文件的增量(Filegrowth). 2.文件有mdf.ndf.ldf 三种文件的区别. 3.文件组可以进行文件的管理 FileG ...

  5. Kubectl 的替代品:kubeman

    周末闲逛 Twitter 时,发现一个很有意思的小工具叫 kubeman,野心倒是不小,励志成为 kubectl 的替代品,用于实时监控和管理 kubernetes 集群,还可以调试与 Istio 相 ...

  6. 使用Docker之镜像的拉取、查询、删除

    1:查看镜像列表 2:拉取镜像    通过命令可以从镜像仓库中拉取镜像,默认从Docker Hub 获取. 命令格式: docker image pull <repository>:< ...

  7. Jenkins的使用(一)

    Jenkins 介绍: Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成 变成可能.前身是Huds ...

  8. wsl中的git问题

    当使用wsl打开Windows下的仓库时可能会出现所有文件都被标记为modified,这时一般有两种情况. 文件权限问题 由于wsl申请对文件的读写权限导致文件的权限发生改变.这时只需修改git的设置 ...

  9. tkinter的单选Radiobutto

    from tkinter import * def printSelection(): num = var.get() if num == 1: lab.config(text="你是男生& ...

  10. 设计模式之(八)组合模式(COMPOSITE)

    初始印象 在开发中存在很多整体和部分的关系,这个方式最大的体现就是树形结构.组合模式就是为了更好地解决这类业务场景的问题.先看下组合模式的定义: 将对象组合成树形结构以表示“整体—部分”的层次关系.组 ...