搭建步骤

第一步: 在 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. Nodejs入门(二)

    Nodejs基础api 1.path path模块提供了很多实用的工具函数,用于处理文件与目录的路径,下面是它的api: normalize 方法可以输出规范格式的path字符串 join 方法用于拼 ...

  2. Kafka优雅应用

    Kafka API实战 注意版本问题这个,kafka-client要和kafka的版本一致 <dependency> <groupId>org.apache.kafka< ...

  3. Fastbin attack 总结

    Fastbin attack 本文参考了ctf-wiki 和glibc 要了解fastbin attack,我们先要了解fastbin的机制.由于libc2.26后加入了tcache机制,我们这里就只 ...

  4. 本地+分布式Hadoop完整搭建过程

    1 概述 Hadoop在大数据技术体系中极为重要,被誉为是改变世界的7个Java项目之一(剩下6个是Junit.Eclipse.Spring.Solr.HudsonAndJenkins.Android ...

  5. 编写一个简单的flask的前后端交互的网页(flask简单知识的讲解)

    实验原理: 1.什么是flask Flask是一个使用Python编写的轻量级Web应用框架,其WSGI工具采用Werkzeng,模板引擎使用Jinja2.Flask与 Django之间的区别就是Dj ...

  6. Day16_89_通过反射机制获取所有构造方法

    通过反射机制获取某个特定的构造方法 * 代码 import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; publ ...

  7. String a=new String("abc")创建了几个对象

    String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 相信大家对这道题并不陌生,答案 ...

  8. 通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权

    Oauth2授权,熟悉微信开发的同学对这个东西应该不陌生吧.当我们的应用系统需要集成第三方授权时一般都会做oauth集成,今天就来看看在Dapr的语境下我们如何仅通过配置无需修改应用程序的方式让第三方 ...

  9. 【maven】maven资源过滤问题<build>

    需要在pom.xml加入以下代码(在父项目添加即可,如果还不行的话,就在子module的pom.xml也添加) <build> <resources> <resource ...

  10. 【apache】使用HttpClient,进行简单网页抓取

    1 package com.lw.httpclient.test; 2 import org.apache.http.client.methods.CloseableHttpResponse; 3 i ...