sentinel功能

redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。

1、监控(Monitoring): Redis Sentinel实时监控主服务器和从服务器运行状态,并且实现自动切换

2、提醒(Notification):当被监控的某个 Redis 服务器出现问题时, Redis Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知。这个需要我们指定相关的代码,比如发邮件、事务的处理等等

3、自动故障转移(Automatic failover): 当一个主服务器不能正常工作时,Redis Sentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口

注意:在使用sentinel监控主从节点的时候,从节点需要是使用动态方式配置的,如果直接修改配置文件,后期sentinel实现故障转移的时候会出问题

主观下线和客观下线:

1、主观下线状态:当一个sentinel认为一个redis服务连接不上的时候,会给这个服务打个标记为下线状态。

2、客观下线状态:当多个sentinel认为一个redids连接不上的时候,则认为这个redis服务确实下线了。这里的多个sentinel的个数可以在配置文件中设置。一般集群中一半的从节点都认为主机下线了,就进行主机选举机制,选出新的主机节点

sentinel配置

  • sentinel monitor mymaster 192.168.33.130 6379 2     #最后一个参数视情况决定 ,一般为从节点数量的一半;最后一个参数为需要判定客观下线所需的主观下线sentinel个数,这个参数不可以大于sentinel个数
  • 启动sentinel    redis-sentinel sentinel.conf

sentinel的一些命令

  • INFO   sentinel的基本状态信息
  • SENTINEL masters   列出所有被监视的主服务器,以及这些主服务器的当前状态
  • SENTINEL slaves <master name>  列出给定主服务器的所有从服务器,以及这些从服务器的当前状态
  • SENTINEL get-master-addr-by-name <master name>  返回给定名字的主服务器的 IP 地址和端口号
  • SENTINEL reset <pattern>  重置所有名字和给定模式 pattern 相匹配的主服务器。重置操作清除主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel
  • SENTINEL failover <master name>  当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移,但是它会给其他sentinel发送一个最新的配置,其他sentinel会根据这个配置进行更新

具体操作

  • 新建sentinel文件夹,在其下新建20190、20191、20192和scripts文件夹,在文件夹的名字也是其对应的端口名字,在端口名字文件夹下新建conf、data和logs文件夹
  • mkdir sentinel
  • mkdir -pv {20190,20191,20192}/{conf,data,logs}
  • 启动方式redis-server 20190/conf/sentinel.conf --sentinel
  • 或者redis-sentinel 20190/cong]f/sentinel.conf
  • 在sentinel文件夹下,此时此文件下存放的就是20190、20191和20192文件夹,使用命令cp 20190/conf/sentinel.conf 20191/conf完成conf文件的拷贝,使用命令sed -i "s/20190/20191/g" 20191/conf/sentinel.conf完成将20190替换为20191的文本替换,完成即可,别的不需要动,具体内容如下
#20190
#指定端口号
port 20190
#指定后台运行
daemonize yes
#指定内网地址
bind 192.168.13.50
#指定数据文件夹
dir "/home/bfxy/servers/sentinel/20190/data"
#指定日志问价夹
logfile "/home/bfxy/servers/sentinel/20190/logs/sentinel.log"#指定master的连接名字是mymaster,连接的地址和端口号,2代表如果两个从节点认为主节点失效了,就进行master的选举
sentinel monitor mymaster 192.168.13.50 10191 2
#设置超时时间20秒
sentinel failover-timeout mymaster 20000
#指定脚本文件
sentinel notification-script mymaster /home/bfxy/servers/sentinel/scripts/notify.sh
# Generated by CONFIG REWRITE
sentinel client-reconfig-script mymaster /home/bfxy/servers/sentinel/scripts/reconfig.sh
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 8
sentinel known-sentinel mymaster 192.168.13.50 20191 e3f1be1924eba40a3698be5d81433ce133289315
sentinel known-sentinel mymaster 192.168.13.50 20192 8d47dce1af43f144d7b868969740cefef7d0e034
sentinel current-epoch 8
  • 在src目录下,使用命令redis-sentinel /user/local/redis-4.0.14/sentinel/20190/conf/sentinel.conf启动服务,20191和20192也是这样操作
  • 在src目录下,使用命令redis-cli  -h 192.168.133.130 -p 20190,使用客户端连接到服务器

Redis的哨兵模式Sentinel相关推荐

  1. Redis:哨兵模式(Sentinel)原理

    1. 前言 Redis主从复制模式不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复.Redis哨兵模式就解决了Redis主从复制模式 ...

  2. Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析

    Redis 的几种常见使用方式包括: 单机模式 主从模式 哨兵模式(sentinel) 集群模式(cluster) 第三方模式 单机模式 Redis 单副本,采用单个 Redis 节点部署架构,没有备 ...

  3. Redis: Redis的主从复制(Master/Slave),一主二仆,薪火相传,反客为主,哨兵模式sentinel

    命令: slaveof 主库ip  主库端口         配置从库 info replication                         查看redis连接情况 slaveof  no ...

  4. Redis:哨兵模式(针对某一模块,数据量有限)

    Redis:哨兵模式(针对某一模块,数据量有限) 关键词 主从(读写分离,高新能),没有实现高可用 主从+哨兵:可以实现主从切换,实现高可用 哨兵检测(1s1ping),哨兵确认(接受回复,主观下线: ...

  5. Redis的哨兵模式搭建

    Redis的哨兵模式搭建 1.Redis的哨兵模式 Redis的哨兵是反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库.哨兵(sentinel) 是一个分布式系统, ...

  6. Redis(3)--哨兵模式,集群

    Redis的哨兵模式 什么是哨兵模式 Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行.其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例. ...

  7. Redis之哨兵模式

    文章目录 Redis之哨兵模式 1.哨兵介绍 2.哨兵作用 3.哨兵相关配置 4.配置哨兵 5.演示(配置哨兵) 6.主从切换过程 7.阶段一监控阶段 8.阶段二通知阶段 9.阶段三故障转移阶段 Re ...

  8. 哨兵模式(sentinel)

    Redis主从复制-哨兵模式(Sentinel) 反客为主的自动版,能够后台监控Master是否故障,如果故障了,根据投票数自动将Slave转换为 Master. 哨兵模式是一种特殊的模式,首先Red ...

  9. redis的哨兵模式测试

    上篇文章我们说到,一主二从的模式,如果主机挂掉,从机等待主机连上之后,继续成为主机的slave. 但是这样会影响我们业务的正常运转呀,我们怎么来做呢? 目前的我的服务器: 192.128.116.12 ...

最新文章

  1. dede使用方法----如何调用最新文章,最热文章,友情链接
  2. Linux内存管理之高端内存映射
  3. 【转:SAP学习篇】Fiori 的开发工具
  4. Hadoop MapReduce实例:按手机上网总流量降序排序代码实现及结果演示
  5. nginx负载均衡的五种方式
  6. VTK:可视化之HedgeHog
  7. 十八、MySQL之TCL事务控制语言(详解)
  8. 企业如何才能选到最好的邮件系统合作伙伴?
  9. 前端ajax数据提交到服务器_详解前端如何让服务器主动向浏览器推送数据
  10. python和anaconda区别_Pycharm、Anaconda到底是什么?有什么区别?
  11. 如何用一行 CSS 实现 10 种现代布局?
  12. 不起眼的vim.转自https://blog.csdn.net/iplayvs2008/article/details/51508599
  13. windows 系统 局域网 屏幕共享
  14. 华为的PBC个人绩效评价模板
  15. 计算机笔记本硬盘,笔记本取证之--笔记本硬盘拆卸
  16. C++基础(C++Primer学习)
  17. PAIRNORM : TACKLING OVERSMOOTHING IN GNNS
  18. 【FJ 2016 Day5】冷战(coldwar)
  19. 最近的一些杂感-20220107
  20. 浏览器开代理后,https地址打不开

热门文章

  1. 【转】pacs定位线_C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法
  2. Dynamics 365 CRM 开发架构简介
  3. php源码查找替换,php 替换模板中的 PHP源码标签字符方法
  4. java比赛题目_【蓝桥杯2016第七届比赛题目】JAVA A组
  5. Python3 基础学习笔记 C06【用户输入和 while 循环】
  6. REVERSE-PRACTICE-BUUCTF-29
  7. 【2018ACM山东省赛 - E】Sequence(树状数组,思维,优化)
  8. 【OpenJudge - noi - 7624】山区建小学(dp)
  9. 【牛客 - 181D】小叶的巡查(树的直径,数学)
  10. php测试插入,php – 使用Symfony测试数据库插入