搭建步骤

第一步: 在 redis.conf 配置文件目录下拷贝三份 sentinel.conf 文件
[root@node-01 redis-5.0.9]# cp sentinel.conf sentinel.conf1
[root@node-01 redis-5.0.9]# cp sentinel.conf sentinel.conf2
[root@node-01 redis-5.0.9]# cp sentinel.conf sentinel.conf3
第二步:在 sentinel.conf1 文件中查看配置
  • 配置格式:sentinel monitor 被监控机器名 IP地址 端口号 得票数

    Vim 打开 sentinel.conf1 文件,修改如下配置项:

port 26379 # 哨兵监控端口(sentinel.conf1)
daemonize yes # 后台运行
sentinel monitor mymaster 127.0.0.1 6379 2 # 表示只要有2个哨兵节点认为主服务器有问题则进入客观下载状态
  • 然后修改 sentinel.conf2 的监控端口为 26380
port 26380 # 哨兵监控端口(sentinel.conf2)
daemonize yes # 后台运行
sentinel monitor mymaster 127.0.0.1 6379 2 # 表示只要有2个哨兵节点认为主服务器有问题则进入客观下载状态
  • 然后修改 sentinel.conf3 的监控端口为 26381
port 26381 # 哨兵监控端口(sentinel.conf3)
daemonize yes # 后台运行
sentinel monitor mymaster 127.0.0.1 6379 2 # 表示只要有2个哨兵节点认为主服务器有问题则进入客观下载状态
第三步:启动哨兵模式
  • cd 进入 Redis 的 src 目录,然后分别执行启动 3 个哨兵模式脚本,如下:
[root@node-01 redis-5.0.9]# src/redis-sentinel sentinel.conf1
[root@node-01 redis-5.0.9]# src/redis-sentinel sentinel.conf2
[root@node-01 redis-5.0.9]# src/redis-sentinel sentinel.conf3
第四步:查看 3 个哨兵模式进程,确定是否启动成功
[root@node-01 redis-5.0.9]# ps -ef | grep sentinel
root 1824 1 0 12:34 ? 00:00:00 src/redis-sentinel *:26379 [sentinel]
root 1829 1 0 12:34 ? 00:00:00 src/redis-sentinel *:26380 [sentinel]
root 1834 1 0 12:34 ? 00:00:00 src/redis-sentinel *:26381 [sentinel]
root 1841 1495 0 12:35 pts/0 00:00:00 grep --color=auto sentinel

说明三个哨兵进程已成功启动

第五步:检测哨兵模式
  • 直接关闭端口为 6379 的 Master 主服务器,以模拟主服务器故障,如下:
127.0.0.1:6379> shutdown
not connected>
  • 查看端口号 6380 服务器的主从关系
[root@node-01 redis-5.0.9]# src/redis-cli -p 6380
127.0.0.1:6380> info replication
# Replication
role:slave # 表示该服务器是一个从服务器
master_host:127.0.0.1 # 表示连接的主服务器 IP 地址
master_port:6381 # 表示连接的主服务器端口号
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:29805
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:ab744fc6feb39f575ec3958f288a52ec7dd034db
master_replid2:554339e6ceb0172e1a8be239d5f84edfa7c39455
master_repl_offset:29805
second_repl_offset:28586
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:29805

查看结果为端口 6380 的服务器仍然是从服务器,但是它连接的主服务器不再是端口 6379 的服务器了,而变为了 端口为6381 的服务器。

  • 查看端口号 6381 服务器的主从关系
[root@node-01 redis-5.0.9]# src/redis-cli -p 6381
127.0.0.1:6381> info replication
# Replication
role:master # 表示该服务器为主服务器
connected_slaves:1 #表示该服务器拥有1个从服务器连接
# 从服务器列表信息
slave0:ip=127.0.0.1,port=6380,state=online,offset=70265,lag=1
master_replid:ab744fc6feb39f575ec3958f288a52ec7dd034db
master_replid2:554339e6ceb0172e1a8be239d5f84edfa7c39455
master_repl_offset:70398
second_repl_offset:28586
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:85
repl_backlog_histlen:70314

查看结果为端口 6381 的服务器已经由原来的从服务器(Slave),切换为主服务器(Master),而且连接在原来主服务器的端口 6380 的从服务器,也重新连接到新的主服务器上了。

  • 重新启动端口 6380 的前任主服务器
[root@node-01 redis-5.0.9]# src/redis-cli -p 6379
127.0.0.1:6379> info replication
# Replication
role:slave # 表示该服务器为从服务器
master_host:127.0.0.1 # 表示连接的主服务器IP地址
master_port:6381#表示连接的主服务器端口号
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:131755
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:ab744fc6feb39f575ec3958f288a52ec7dd034db
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:131755
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:129724
repl_backlog_histlen:2032

查看结果为重启服务器后,原来的端口 6379 的主服务器已经不再是主服务器,而自动变为端口6381 的新主服务器的从服务器了。

至此,哨兵模式环境搭建和测试成功:)

Redis 哨兵模式配置的更多相关文章

  1. redis哨兵模式配置

    java对redis的读写 依赖包:jedis.jar maven下: <!-- https://mvnrepository.com/artifact/redis.clients/jedis - ...

  2. Redis哨兵模式高可用部署和配置

    一.Redis 安装配置 1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.解压安装包 tar -zxv ...

  3. redis环境搭建及一主二从三哨兵模式配置

    一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...

  4. Redis哨兵模式的配置

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

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

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

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

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

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

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

  8. Redis 哨兵模式(Sentinel)

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

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

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

随机推荐

  1. Dynamics CRM证书更换

    Dynamics CRM产品一般有两种认证方式.第一种是基于声明的内部访问也就是无证书单纯用账号密码验证.第二种就是联合身份认证,需要安装网站证书. 对于联合身份认证的情况因为需要安装证书,而且证书是 ...

  2. nginx配置实例及多服务器负载

    目录 nginx配置实例 多服务器负载 nginx配置实例 nginx.conf worker_processes 1; events { worker_connections 1024; } htt ...

  3. c# 输出一个数组

    关于C#输出一个数组最普遍的方法就是用for 循环语句写 如: int[] a = new int[10];for (int i = 0; i < a.Length; i++) { a[i] = ...

  4. IDEA/JRebel实现内部/外部/远程Tomcat热部署Spring Boot

    1 概述 所谓热部署,对于Java应用程序来说,就是在运行时更新Java类文件.IDEA可以使用自带的Spring Boot热部署的方式进行本地/远程热部署,或者使用JRebel进行本地/远程热部署, ...

  5. Fiddler使用 断点 模拟返回 AutoResponder Mock 模拟数据 相关学习记录

    断点 测试中有时需要改变发出去的请求信息,需要用到打断点的方法.断点包含两种方式: before response:在request请求的时候,未到达服务器之前,一般用来修改请求参数 after re ...

  6. kube-batch(一)安装

    安装 官方:https://github.com/kubernetes-sigs/kube-batch 下载镜像 安装 官方:https://github.com/kubernetes-sigs/ku ...

  7. 微服务的进程间通信(IPC)

    微服务的进程间通信(IPC) 目录 微服务的进程间通信(IPC) 术语 概述 通信视角 APIs 消息格式 RPC REST gRPC 断路器 API通信的健壮性 服务发现 异步消息 概念 消息 消息 ...

  8. 编写shell脚本让springboot项目在CentOS中开机自启动

    springboot项目部署在CentOS系统上时,如果遇到停电关机,公司的实施人员就得跑到甲方现场重新启动项目并测试,很是麻烦,这里探讨如何编写shell脚本控制springboot项目开机时自动启 ...

  9. SpringCloud(三)Hystrix断路器

    Hystrix断路器 概述 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和 ...

  10. Vue学习(二)-Vue中组件间传值常用的几种方式

    版本说明:vue-cli:3.0 主要分为两类: 1.父子组件间的传值 2.非父子组件间的传值 1.父子组件间传值 父组件向子组件传值 第一种方式: props 父组件嵌套的子组件中,使用v-bind ...