redis哨兵模式没有切换主机_Redis的哨兵模式
微信公众号:51码农网
网站:http://www.51manong.com51码农网,让程序员的坚持学习变得可能
Redis哨兵(Sentinel)模式
Redis的主从复制,当主机出现了宕机时,需要人工手动去干预,把一台从服务器切换为主服务器,或者手动去重启主机,费时费力,而且还会导致该时间段内的服务不可用,这就要说说Redis的哨兵模式。
哨兵自然就是站岗放哨,负责监控。Redis的哨兵系统执行3个任务
1.监控,Redis的哨兵会不断检查主服务器和从服务器的运行状况
2.提醒,当哨兵检查到某个Redis服务器出现了问题,哨兵可以通过API向运维或者其他程序发送通知
3.自动故障迁移(Automatic failover), 当一个主服务器不能正常工作时, 哨兵会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器
哨兵模式的配置文件sentinel.conf
运行一个 Sentinel 所需的最少配置如下所示:
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1sentinel monitor resque 192.168.1.3 6380 4
sentinel down-after-milliseconds resque 10000
sentinel failover-timeout resque 180000
sentinel parallel-syncs resque 5
第一行配置指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 , 而将这个主服务器判断为失效至少需要 1 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。
down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。
如果服务器在给定的毫秒数之内, 没有返回 Sentinel 发送的 PING 命令的回复, 或者返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线(subjectively down,简称 SDOWN )。
不过只有一个 Sentinel 将服务器标记为主观下线并不一定会引起服务器的自动故障迁移: 只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线(objectively down, 简称 ODOWN ), 这时自动故障迁移才会执行。
parallel-syncs 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长
哨兵模式演示
1.将Redis源码下的sentinel文件复制到Redis的安装目录
[erayt@ERAYT-01 redis-3.0.0]$ cp sentinel.conf /usr/local/redis/bin/
顺便说一下,Redis Sentinel 兼容 Redis 2.4.16 或以上版本, 推荐使用 Redis 2.8.0 或以上的版本。2.配置sentinel
sentinel monitor mymaster 127.0.0.1 6379 1
3.启动哨兵
[erayt@ERAYT-01 bin]$ ./redis-sentinel sentinel.conf
查看窗口日志
3146:X 20 Jul 05:41:40.158 # Sentinel runid is 2fd81c3ed629769930e5b4511470e95b0a429a4b
3146:X 20 Jul 05:41:40.158 # +monitor master mymaster 127.0.0.1 6379 quorum 2
3146:X 20 Jul 05:41:41.169 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
3146:X 20 Jul 05:41:41.169 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
4.关闭Redis的主节点6379
[erayt@ERAYT-01 bin]$ ./redis-cli shutdown
查看窗口日志
3260:X 20 Jul 05:55:33.661 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
3260:X 20 Jul 05:55:33.674 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
3260:X 20 Jul 05:55:33.696 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380
3260:X 20 Jul 05:56:03.710 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380
6380这个节点应该成为了新的主服务器
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6381,state=online,offset=570,lag=0
master_repl_offset:570
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:569
故障转移的步骤
发现主服务器已经进入客观下线状态。
对我们的当前纪元进行自增, 并尝试在这个纪元中当选。
如果当选失败, 那么在设定的故障迁移超时时间的两倍之后, 重新尝试当选。
如果当选成功, 那么执行以下步骤。
1.选出一个从服务器,并将它升级为主服务器。
2.向被选中的从服务器发送 SLAVEOF NO ONE 命令,让它转变为主服务器。
3.通过发布与订阅功能, 将更新后的配置传播给所有其他 Sentinel , 其他 Sentinel 对它们自己的配置进行更新。
4.向已下线主服务器的从服务器发送 SLAVEOF host port 命令, 让它们去复制新的主服务器。
5.当所有从服务器都已经开始复制新的主服务器时, 领头 Sentinel 终止这次故障迁移操作。
微信公众号:51码农网
redis哨兵模式没有切换主机_Redis的哨兵模式相关推荐
- redis哨兵模式没有切换主机_Redis哨兵(Sentinel)模式
Redis哨兵(Sentinel)模式 在这里插入图片描述 一.主从复制高可用 当我们使用主从复制出现的问题 手动故障转移 写能力和存储能力受限 主从复制 -master 宕机故障处理 主从切换技术的 ...
- 我的Redis哨兵为什么不切换?
一.背景 做为一个DBA,在普天同乐的国庆节期间,还在像个值班老大爷一样,苦逼的值守着数据中心,这可能是国庆节最惨的事情了.今天在值班空闲之余,正好想起在前几天遇到的一个奇怪的redis问题,顺便 ...
- redis系列之——高可用(主从、哨兵、集群)
Redis系列目录 redis系列之--分布式锁 redis系列之--缓存穿透.缓存击穿.缓存雪崩 redis系列之--Redis为什么这么快? redis系列之--数据持久化(RDB和AOF) re ...
- redis面试:哨兵模式主从切换数据丢失问题
redis哨兵是怎么工作的 哨兵作用 监控整个主数据库和从数据库,观察它们是否正常运行 当主数据库发生异常时,自动将从数据库升级为主数据库,继续保证整个服务的文档 哨兵是怎样工作的 每隔sentine ...
- Redis主从复制哨兵模式自动切换
Redis主从复制 1.概念 主从复制,是指将一台Redis服务器的数据复制到其他的redis服务器上.前者为主节点master,后者为从节点slave,数据的复制是单向的,由主节点复制到从节点(主节 ...
- redis哨兵模式原理_Redis的哨兵 (sentinal) 机制的工作原理
什么是哨兵机制? Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Mas ...
- Redis数据库(三)——(主从复制、哨兵模式、集群)
Redis数据库(三)--(主从复制.哨兵模式.集群) 一.Redis主从复制 1.Redis主从模式介绍 2.Redis主从复制的流程 3.Redis主从复制的作用 4.Redis主从复制的搭建 环 ...
- redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式
Redis高可用定义 在web服务器中,高可用代表服务器可以正常访问的时间,一般使用百分比来衡量多长时间内可以提供正常服务 但是在redis中,高可用的定义还要更广泛一点,除了提供正常的服务(如主从分 ...
- Redis的主从复制与高可用搭建(哨兵模式)
前言 为什么要使用Redis 首先我们先介绍些redis的基本概念,redis是Nosql数据库,是一个key-value存储系统.虽然redis是key-value的存储系统,但是redis支持的v ...
最新文章
- Mysql 主从延时监控(pt-heartbeat)详解
- SAP SD基础知识之信用范围数据维护
- 面试题:SSH 和 SSM 两个框架的浅显的区别?
- ios php ide,最好的PHP IDE for Mac? (最好免费!)
- SQL Server数据库原理
- 【快速入门Linux】2_Linux命令—基本使用
- flutter android 和 ios 发布
- WebRTC 将一统实时音视频天下?
- 减法运算的借位标志cf_数学|有理数运算法则及题型汇总
- 摩尔庄园同一服务器怎么显示好友,摩尔庄园手游怎么搜索别人搜索好友步骤详解...
- 2022年中国汽车维修设备市场现状研究分析
- 小程序中实现搜索功能
- 【个人网站】个人网站搭建预备工作
- 上海居住证积分全流程
- 浅谈C语言(初学者)
- 语音模块LD3320模块的二次开发,并与树莓派进行串口通信
- 不能上升到金钱的爱都不是真爱!
- Java生鲜电商平台-商品中心的架构设计与源码解析
- 2020年全国大学生电子设计大赛赛后总结
- 谁说阅读App只能“阅”?百度大脑变“口语专家”为英语朗读打分
热门文章
- 【Python】Python中str()和repr()函数的区别
- 【WebPPTtoPDF】在线将PPT转化为PDF,支持自定义排列方式
- 密码学系列之:feistel cipher
- Spring5参考指南:Bean作用域
- viewer vue 文档_vue基于viewer实现的图片查看器
- python的read_csv_python,pd.read_csv成熟导入
- 【已解决】[Error] cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_s
- 同步规则和happen-before规则
- 腾达n304v2支持万能中继吗_驱动天空 - 网络设备 - 宽带路由器 - 腾达路由器
- linux命令行下载github文件,Linux命令行下使用GitHub