学习记录03 --- 重新配置redis的哨兵模式

查阅多方资料后,才发现昨天写的配置哨兵模式开启是错的,尴尬。。。

今天重新来配置一下,当然为了避免出现问题,先理清下思路,整理好信息

哨兵模式监控的节点最少三个,昨天监控了2个是不够的,所以我又再一次的拷贝了一份redis.conf

服务器类型 是否主服务器  IP地址 端口号
Redis 192.168.200.128 6379
Redis 192.168.200.128 6380
Redis 192.168.200.128 6381
Sentinel - 192.168.200.128 26379
Sentinel - 192.168.200.128 26380
Sentinel - 192.168.200.128 26381

上面就是我三个节点以及三个哨兵模式的端口配置了,因为资源有限,就都弄在一个虚拟机上了

废话就不多说,开干了

先配置主服务器,修改redis-6379.conf,加上下面的配置

#设置主服务器的密码requirepass "123456“#使外网也能访问主数据库bind 0.0.0.0

2个从服务器也需要配置一下,修改redis-6380.conf和redis-6381.conf,加上下面的配置

#指定主服务器
slaveof 192.168.200.128 6379
#主服务器密码
masterauth 123456

两个配置好后,我们再来配置哨兵,有3个节点,就需要3个哨兵了

首先设置第一个哨兵,其他的哨兵都是一样的

port 26379
daemonize yes
logfile "26379.log"
dir "/usr/local/redis/bin"
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.200.128 6379 2
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster 123456
bind 192.168.200.128 127.0.0.1
# Generated by CONFIG REWRITE
protected-mode no
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel current-epoch 0

接下来先启动主服务器,后启动从服务器,最后启动三个哨兵即可

我们来测试一下,我们突然停掉主服务器,看看哨兵能不能完成故障转移

#发现master无法连接了
2722:X 29 Jul 2019 19:13:01.161 # +sdown master mymaster 192.168.200.128 6379
#经过投票后,有3个sentinel发现master不能用
2722:X 29 Jul 2019 19:13:01.219 # +odown master mymaster 192.168.200.128 6379 #quorum 3/2
#当前配置版本被更新
2722:X 29 Jul 2019 19:13:01.219 # +new-epoch 1
#达成故障转移条件,等待其他sentinel的选举
2722:X 29 Jul 2019 19:13:01.219 # +try-failover master mymaster 192.168.200.128 6379
#开始投票选举slave服务器
2722:X 29 Jul 2019 19:13:01.221 # +vote-for-leader 0a15116eb684859ad0405cd5878f7a3996d7b9d0 1
2722:X 29 Jul 2019 19:13:01.225 # 108dfb973098e0bafe67f8500d45b742b5c257eb voted for 0a15116eb684859ad0405cd5878f7a3996d7b9d0 1
2722:X 29 Jul 2019 19:13:01.226 # 0decb1582394f4c013012c7df1693138cfd26f20 voted for 0a15116eb684859ad0405cd5878f7a3996d7b9d0 1
2722:X 29 Jul 2019 19:13:01.312 # +elected-leader master mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:01.313 # +failover-state-select-slave master mymaster 192.168.200.128 6379
#把选举出来的slave进行身份master切换
2722:X 29 Jul 2019 19:13:01.398 # +selected-slave slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:01.398 * +failover-state-send-slaveof-noone slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:01.499 * +failover-state-wait-promotion slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:02.334 # +promoted-slave slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
#把故障转移failover改变reconf-slaves
2722:X 29 Jul 2019 19:13:02.334 # +failover-state-reconf-slaves master mymaster 192.168.200.128 6379
#sentinel发送slaveof命令把6380端口重新同步6379master
2722:X 29 Jul 2019 19:13:02.434 * +slave-reconf-sent slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6379
#离开不可用的master
2722:X 29 Jul 2019 19:13:03.353 # -odown master mymaster 192.168.200.128 6379
#slave被重新配置为另外一个master的slave,但数据还未发生
2722:X 29 Jul 2019 19:13:03.353 * +slave-reconf-inprog slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6379
#与master进行数据同步
2722:X 29 Jul 2019 19:13:03.353 * +slave-reconf-done slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6379
#故障转移完成
2722:X 29 Jul 2019 19:13:03.423 # +failover-end master mymaster 192.168.200.128 6379
#master地址发生改变
2722:X 29 Jul 2019 19:13:03.423 # +switch-master mymaster 192.168.200.128 6379 192.168.200.128 6381
#检测slave并添加到slave列表
2722:X 29 Jul 2019 19:13:03.423 * +slave slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6381
2722:X 29 Jul 2019 19:13:03.423 * +slave slave 192.168.200.128:6379 192.168.200.128 6379 @ mymaster 192.168.200.128 6381

通过上面的log解析之后,发现成功的进行的故障转移,那么这次的哨兵模式配置也是告一段落了

原文地址:https://www.cnblogs.com/huajidafahao/p/11268406.html

时间: 2024-10-11 02:55:06

学习记录03 --- 重新配置redis的哨兵模式的相关文章

学习记录: 安装配置自动化工具ansible

学习记录:  安装配置ansible 更新日期: 2016-11-30 系统环境    :centos6.5 本机ip        :192.168.233.123 被管理机ip :192.168.233.124 ------------------------------------- py版本       :   默认python2.6 ansible版本:ansible 1.7.2 ansible参数:             -m  模块名(执行命令)              -a

Redis sentinel 哨兵模式集群方案配置

第一个方案是创建 redis cluster,第二种方案就是用哨兵模式来进行主从替换以及故障恢复.兵模式集群方案配置 一.sentinel介绍 Sentinel作用: 1):Master状态检测 2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave 3):Master-Slave切换后,master_redis.conf.slave_redis.conf和sentinel.conf的内容都会发生改变,即mast

redis主从+哨兵模式

主从模式配置分为手动和配置文件两种方式进行配置,我现在有192.168.238.128(CentOS1).192.168.238.131(CentOS3).192.168.238.132(CentOS4)几台机器,只是配置文件的配置方式是降手动配置的命令放在配置文件中而已,本质是一致的.下面将对配置文件方式进行配置,我所述的案例,是基于我自己的另一篇博文<Redis的安装.服务配置>之上: 1.我将CentOS4作为主数据库,其他 模拟为从数据库 2.将CentOS1目录切换到/etc/red

Redis 之 哨兵模式

一.哨兵模式的概念 哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行.其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例. 二.实验环境 三.安装redis服务 1.指定外部安装源wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo2.安装redisyum -y install redis 四.配置maste

redis的哨兵模式(redis有密码)

环境搭建: 前言: 小编使用的redis的版本号是5.0.5,可能会略有不同,例如redis.conf配置文件中,没有slaveof这一项配置 虚拟机一定要关闭掉防火墙 本次使用7006作为master,7007,7008作为slave 为了方便直接在slave的配置文件中写好master的配置(配从不配主),配置好master的ip,redis的端口和密码 slave的redis.conf里主机配置: 启动主机和从机后一主二从模式就ok了,可以简单测试一下 下面开始配置哨兵 新建了一个sent

Redis之哨兵模式Sentinel配置与启动(五)

一.介绍 上一篇我们已经介绍了Redis的主从复制,传送门:<Redis高可用之主从复制实践(四)>,想必大家对redis已经有一个概念了,那么问题来了,如果redis主从复制的master服务器挂掉了,那么整体redis就崩溃了,因为master无法进行写数据,导致slave中无法更新数据. 那么为了解决这个问题我们就需要有一种方案让redis宕机后可以自动进行故障转移,还好redis给我们提供一种高可用解决方案 Redis-Sentinel.Redis-sentinel本身也是一个独立运行

学习记录007-网络配置与定时任务

一.简单知识1.命令积累:ifup eth0 //启动网卡ifdown etho //关闭网卡route -n //查看网关route del default gw 10.0.0.244 //删除网关,gw 代表网关 add代表添加网关 2.linux中为什么配置文件都需要重启生效?防止配置出错把所有配置放在内存里,如果放到磁盘里,会很慢 3.一些网络配置的基本问题 /etc/sysconfig/network //网关的配置以及用户名配置 /etc/sysconfig/network-scri

《Android第一行代码》学习记录03 - 使用Intent切换活动

Intent的使用分为两类: 一.使用显式Intent 显式的Intent就是在实例化Intent时显式提供当前上下文与要跳转活动的上下文,代码如下所示: Intent intent = new Intent(MainActivity.this, OtherActivity.class); startActivity(intent); 二.使用隐式Intent 隐式Intent并不明确指定要启动哪一个活动,而是通过指定action与category,由系统分析启动哪个活动,步骤如下: 1.在An

redis sentinel哨兵模式集群搭建教程

1.环境说明 我们将使用192.168.220.128.192.168.220.129.192.168.220.130三台机器搭建sentinel集群 当前我们已在192.168.220.128上按redis安装教程安装了redis,192.168.220.129和192.168.220.130两台上没有安装 2.配置并启动192.168.220.128上的sentinel 2.1修改conf/redis.conf,配置masterauth字段值 2.2修改conf/sentinel.conf,