redis哨兵搭建

1、复制配置文件到conf

#单机安装以后
[root@t3 redis-5.0.8]# pwd
/app/redis-5.0.8
[root@t3 redis-5.0.8]# cp sentinel.conf ../redis/conf/
#复制三份
[root@t3 conf]# mv sentinel.conf sentinel_26379.conf  
[root@t3 conf]# cp sentinel_26379.conf sentinel_26380.conf  
[root@t3 conf]# cp sentinel_26379.conf sentinel_26381.conf
#日志文件创建三个
[root@t3 logs]# pwd
/app/redis/logs
[root@t3 logs]# touch {sentinel_26379.log,sentinel_26380.log,sentinel_26381.log}
#创建三个pid文件
[root@t3 pid]# pwd
/app/redis/pid
[root@t3 pid]# touch {sentinel_26379.pid,sentinel_26380.pid,sentinel_26381.pid}

2、更改配置文件

#更改26379的配置文件
bind 192.168.47.190
port 26379
daemonize yes
pidfile "/app/redis/pid/sentinel_26379.pid"
logfile "/app/redis/logs/sentinel_26379.log"
dir "/app/redis/data"
#sentinel myid d9730ea7211a7aa362e2ea9b8659f2ac83010473
sentinel deny-scripts-reconfig yes
#指向主服务器的IP端口
sentinel monitor mymaster 192.168.47.188 6379 2
sentinel auth-pass mymaster 123456
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
protected-mode no
sentinel known-replica mymaster 192.168.47.189 6379
sentinel current-epoch 0
​
#26380的改端口,pid、log即可
bind 192.168.47.190
port 26380
daemonize yes
pidfile "/app/redis/pid/sentinel_26380.pid"
logfile "/app/redis/logs/sentinel_26380.log"
dir "/app/redis/data"
#sentinel myid d9730ea7211a7aa362e2ea9b8659f2ac83010473
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.47.188 6379 2
sentinel auth-pass mymaster 123456
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
protected-mode no
sentinel known-replica mymaster 192.168.47.189 6379
sentinel current-epoch 0
​
#26381的改端口,pid、log即1
bind 192.168.47.190
port 26381
daemonize yes
pidfile "/app/redis/pid/sentinel_26381.pid"
logfile "/app/redis/logs/sentinel_26381.log"
dir "/app/redis/data"
#sentinel myid d9730ea7211a7aa362e2ea9b8659f2ac83010473
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.47.188 6379 2
sentinel auth-pass mymaster 123456
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
protected-mode no
sentinel known-replica mymaster 192.168.47.189 6379
sentinel current-epoch 0

3、启动验证

3.1、启动

[root@t3 conf]# pwd
/app/redis/conf
[root@t3 conf]# ../bin/redis-sentinel sentinel_26379.conf
[root@t3 conf]# ../bin/redis-sentinel sentinel_26380.conf
[root@t3 conf]# ../bin/redis-sentinel sentinel_26381.conf

3.2、验证

#cli连接
[root@t3 bin]# ./redis-cli -h 192.168.47.190 -p 26381
#查看master信息
192.168.47.190:26379> sentinel master mymaster
1) "name"
2) "mymaster"
3) "ip"
4) "192.168.47.188"
5) "port"
6) "6379"
7) "runid"
8) "7ad0e4a8cede117bb1f7a2a7deb040a460e96a88"
9) "flags"
10) "master"
#查看slaves信息
192.168.47.190:26379> SENTINEL slaves mymaster
1)  1) "name"
   2) "192.168.47.189:6379"
   3) "ip"
   4) "192.168.47.189"
   5) "port"
   6) "6379
#master的IP地址和端口
192.168.47.190:26379> SENTINEL get-master-addr-by-name mymaster
1) "192.168.47.188"
2) "6379"
#查看sentinel信息看到有三个
192.168.47.190:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.47.188:6379,slaves=1,sentinels=3
#到此算是搭建完成拉,把master干掉看看能不能切换过去交给你们自己咯!

4、配置文件详解

# 绑定IP地址
bind 192.168.47.190
​
#此Sentinel实例运行的端口
port 26379
​
#后台运行yes
daemonize yes
​
#pid文件路径
pidfile "/app/redis/pid/sentinel_26379.pid"
​
#日志文件路径
logfile "/app/redis/logs/sentinel_26379.log"
​
#工作目录
dir "/app/redis/data"
​
#因为配置文件是复制的这个参数都是一样的,启动sentinel检查发现一个一sentinel(注释掉)
#sentinel myid d9730ea7211a7aa362e2ea9b8659f2ac83010473
sentinel deny-scripts-reconfig yes
##mymaster是集群的名称可自定义,IP地为集群中master的地址,注意与bind的区别 6379表示端口 2表示 需要多少哨兵同意才能执行故障转移操作
sentinel monitor mymaster 192.168.47.188 6379 2
​
#如果redis配置了密码,那这里必须配置认证,否则不能自动切换
sentinel auth-pass mymaster 123456
#哨兵程序自动添加的部分
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
​
# 保护模式(是否禁止外部链接,除绑定的ip地址外)
protected-mode no
​
#指明了当前群集的从库的ip和端口,在主从切换时该值会改变
sentinel known-replica mymaster 192.168.47.189 6379
#除了当前的哨兵还有哪些监控的哨兵
sentinel current-epoch 0

问题: -failover-abort-no-good-slave master mymaster 172.16.55.131 6379
已解决 所有的redis.conf 的bind 127.0.0.1 改为bind 0.0.0.0 从节点bind没有重新写 汗死 重启解决

日志:

23882:X 07 Jul 2020 17:26:27.285 # +new-epoch 3
23882:X 07 Jul 2020 17:26:27.285 # +try-failover master mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:27.286 # +vote-for-leader dc1a501112507435fe18cb8db2edbcb1b5117d10 3
23882:X 07 Jul 2020 17:26:27.289 # 7f5b2e6da8bede8dac1d5f970e9c81a64f63eff2 voted for dc1a501112507435fe18cb8db2edbcb1b5117d10 3
23882:X 07 Jul 2020 17:26:27.290 # 6e7620bb5aad69e54899dbc71838a841b4a63cf8 voted for dc1a501112507435fe18cb8db2edbcb1b5117d10 3
23882:X 07 Jul 2020 17:26:27.387 # +elected-leader master mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:27.387 # +failover-state-select-slave master mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:27.488 # +selected-slave slave 192.168.47.189:6379 192.168.47.189 6379 @ mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:27.488 * +failover-state-send-slaveof-noone slave 192.168.47.189:6379 192.168.47.189 6379 @ mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:27.572 * +failover-state-wait-promotion slave 192.168.47.189:6379 192.168.47.189 6379 @ mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:28.485 # +promoted-slave slave 192.168.47.189:6379 192.168.47.189 6379 @ mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:28.485 # +failover-state-reconf-slaves master mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:28.543 # +failover-end master mymaster 192.168.47.188 6379
23882:X 07 Jul 2020 17:26:28.543 # +switch-master mymaster 192.168.47.188 6379 192.168.47.189 6379
23882:X 07 Jul 2020 17:26:28.543 * +slave slave 192.168.47.188:6379 192.168.47.188 6379 @ mymaster 192.168.47.189 6379
23882:X 07 Jul 2020 17:26:58.559 # +sdown slave 192.168.47.188:6379 192.168.47.188 6379 @ mymaster 192.168.47.189 6379

###查看是否能切换

192.168.47.190:26379> SENTINEL get-master-addr-by-name mymaster
1) "192.168.47.189"
2) "6379"

192.168.47.190:26379> SENTINEL get-master-addr-by-name mymaster1) "192.168.47.189"2) "6379"

redis哨兵搭建的更多相关文章

  1. redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用

    目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...

  2. Redis哨兵(sentinel)模式搭建

    一.Sentinel介绍 之前骚了一波Redis的简介及应用场景,今天试了下他的哨兵模式: Sentinel是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentine ...

  3. Redis哨兵功能与集群搭建

    6.redis哨兵功能 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机, ...

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

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

  5. 搭建redis哨兵模式

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

  6. redis 哨兵机制环境搭建

    Redis哨兵机制,一主二从 注:Redis哨兵切换,建议一主多从 一.一主二从 教程步骤:https://www.cnblogs.com/zwcry/p/9046207.html 二.哨兵配置(se ...

  7. redis哨兵集群搭建

    下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...

  8. Redis 哨兵

    作用 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入. 主要提供了配置提供者,通知,哨兵的监控和自动故障转移功能.哨兵的核心功能是主节点的自动故障转移. 下面是Red ...

  9. redis哨兵集群、docker入门

    redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果m ...

随机推荐

  1. 9.深入k8s:调度器及其源码分析

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 这次讲解的是k8s的调度器部分的代码,相对来说比较复杂,慢慢的梳理清 ...

  2. Linux centos6.5 安装

    本来打算玩 netty的 但是这个东西暂时也不用,而且我之前玩过mina就暂时不玩这个了,等以后有时间再玩,那玩啥呢?前几天和我们领导要了百度网盘会员,下了60G的大数据视屏,嘿嘿,有的玩了,今天开始 ...

  3. 3896. 【NOIP2014模拟10.26】战争游戏

    鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法 ...

  4. Kubernetes的资源控制器和Service(四)

    一.定义和分类 1,定义 k8s 中内建了很多控制器(controller ),这些相当于一个状态机,用来控制 Pod 的具体状态和行为. 2,类型 ReplicationController.Rep ...

  5. Python实现GUI开发 PySide2&PyQt环境配置

    更新于2020-09-15 - 18:50:37 [前言] 关于Python开发GUI图形界面程序的问题,大概是19年十分困扰我,主要是没有经验以及缺乏高效简洁的视频或教学文档,导致在19年中秋前后花 ...

  6. 熬夜23天吃透,九大核心专题,成功收割了阿里、百度、美团3家offer

    前言 今年受疫情影响非常大,春招和金三银四都要比往年来得更迟一些.春招结束之后,我特意把自己的面试经历顺了顺,总结出了不少的经验.对了,这次一共收割了3个大厂offer,分别是蚂蚁金服.美团和网易,特 ...

  7. Anaconda使用及管理

    接下来均是以命令行模式进行介绍,Windows用户请打开"Anaconda Prompt":macOS和Linux用户请打开"Terminal"("终 ...

  8. php第六天-UNIX时间戳/格式化时间,程序错误发送的领域

    ###0x01 PHP的错误处理 1.1 错误报告级别 PHP程序的错误发生一般归属于下列三个领域: 语法错误: 语法错误最常见,并且也容易修复.如:代码中遗漏一个分号.这类错误会阻止脚本的执行. 运 ...

  9. Volatile禁止指令重排序(三)

    Volatile禁止指令重排 计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令重排,一般分为以下三种: 源代码 -> 编译器优化的重排 -> 指令并行的重排 -> 内存系 ...

  10. 高并发场景-请求合并(二)揭秘HystrixCollapser-利用Queue和线程池异步实现

    背景 在互联网的高并发场景下,请求会非常多,但是数据库连接池比较少,或者说需要减少CPU压力,减少处理逻辑的,需要把单个查询,用某些手段,改为批量查询多个后返回. 如:支付宝中,查询"个人信 ...