Redis学习笔记(十四)Sentinel(哨兵)(上)
最近谈到Redis就会听到哨兵模式,工作期间同事也分享过关于哨兵模式的知识,但由于工作忙(给自己找个借口)没有没认真看,现在恶补下,老样子还是分上篇应用,下篇看实现过程,下面我们来看下哨兵到底是啥?
哨兵模式(Sentinel)是Redis的高可用解决方案。由一个或多个Sentinel实例组成的Sentinel系统,可以监控任意多个主服务器,以及这些主服务器下的所有从服务器,当某个主服务器下线时,自动将这个主服务器下的某个从服务器升级为新的主服务器,代替下线的主服务器继续处理命令。另外Sentinel系统还会继续监视已下线的主服务器,当主服务器恢复时,它将被降级成该主服务器的从服务器。
在看哨兵模式的实现过程之前,我们先看一下哨兵的用法:
1、我们将redis.windows.conf配置文件拷贝3份出来,改下名字便于识别:6379.conf,6380,conf,6381.conf。(这里我们模拟使用经典的三节点搭建)
6379.conf我们使用默认配置的6379端口,分别改下 6380,conf与6381.conf的端口号
上一章我们使用slaveof <masterip> <masterport>命令设置从节点,现在我们修改6380.conf与6391.conf,将复制命令配置在文件中,将6379作为主节点:
2、下面我们执行命令,启动三个节点:
redis-server.exe 6379.conf
redis-server.exe 6380.conf
redis-server.exe 6381.conf
好了,现在三个节点都已经启动,并且从控台上看出,从节点已经在复制主节点的数据。
3、分别创建三个Sentinel配置文件:sentinel6379.conf ,sentinel6380.conf ,sentinel3381.conf
内容分别是:
sentinel6379.conf
port
#当前Sentinel服务运行的端口
port
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1
#如果在3秒内无相应,则认为主站点宕机
sentinel down-after-milliseconds mymaster
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster
#执行故障转移时,最多有一台对新的主服务器进行同
sentinel parallel-syncs mymaster
sentinel6380.conf
#当前Sentinel服务运行的端口
port
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1
#如果在3秒内无相应,则认为主站点宕机
sentinel down-after-milliseconds mymaster
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster
#执行故障转移时,最多有一台对新的主服务器进行同
sentinel parallel-syncs mymaster
sentinel3381.conf
port
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1
#如果在3秒内无相应,则认为主站点宕机
sentinel down-after-milliseconds mymaster
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster
#执行故障转移时,最多有一台对新的主服务器进行同步
sentinel parallel-syncs mymaster
3、执行命令启动:
redis-server.exe sentinel6379.conf --sentinel
redis-server.exe sentinel6380.conf --sentinel
redis-server.exe sentinel6381.conf --sentinel
4、校验:
先看下主服务器6379的信息:
切换到6380与6381我们看下:
现在我们模拟主服务器6379宕机(关闭掉6379的服务端),观察6380与6381的反应。
从以上信息来看,6381被选举为主服务器,那么现在我们分别看下6380与6381的信息:
此时监听信息为:
下一步我们恢复6379看看会发生什么:
现在看下监听信息:
此时发现6379被设置为从服务器。
现在我们redis-cli 连接到6379看下:
OK完工,暂时只模拟这一种宕机情况。
篇幅有些长,不知道有多少同学能看到这里。
每天学一点,总会有收获。
下一步我们看下Redis的Sentinel(哨兵)的实现过程
Redis学习笔记(十四)Sentinel(哨兵)(上)的更多相关文章
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- Redis学习笔记(六、哨兵)
目录: 基本概念 环境部署 哨兵原理 哨兵命令 基本概念: 1.什么是哨兵 我们先从字面意思来了解哨兵,哨兵是对执行警戒任务的士兵的统称:在redis中哨兵也是一样,他监控着redis服务器的状态. ...
- (C/C++学习笔记) 十四. 动态分配
十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...
- 【转】Redis学习笔记(四)如何用Redis实现分布式锁(1)—— 单机版
原文地址:http://bridgeforyou.cn/2018/09/01/Redis-Dsitributed-Lock-1/ 为什么要使用分布式锁 这个问题,可以分为两个问题来回答: 为什么要使用 ...
- Redis 学习笔记(四)RDB 和 AOF 持久化机制
一.Redis 持久化简介 Redis 的持久化功能是区别于 Memcached 显著特性,数据持久化可以保证系统在发生宕机和重启后数据不会丢失,对于 redis 这种存储在内存中的数据库显得尤为重要 ...
- MYSQL进阶学习笔记十四:MySQL 应用程序优化!(视频序号:进阶_32)
知识点十五:MySQL 的应用程序优化(32) 一.访问数据库采用连接池 把连接当做对象或设备,统一放在‘连接池’里.凡是需要访问数据库的地方都从连接池里取连接 二.采用缓存减少对于MySQL的访问: ...
- Swift学习笔记十四:构造(Initialization)
类和结构体在实例创建时,必须为全部存储型属性设置合适的初始值. 存储型属性的值不能处于一个未知的状态. 你能够在构造器中为存储型属性赋初值,也能够在定义属性时为其设置默认值.下面章节 ...
- Redis学习笔记(四)-数据类型之list类型
redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...
- JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)
1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向 ...
- python 学习笔记十四 jQuery案例详解(进阶篇)
1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
随机推荐
- 每天认识几个HTTP 响应码
HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成. 1xx信息响应 1xx 的响应结果表明接收的请求正在处理 2xx成功响应 2XX 的响应结果表明请求被正常处理了 3xx重定向 3xx ...
- 自动驾驶汽车数据不再封闭,Uber 开源新的数据可视化系统
日前,Uber 开源了基于 web 的自动驾驶可视化系统(AVS),称该系统为自动驾驶行业带来理解和共享数据的新方式.AVS 由Uber旗下负责自动驾驶汽车研发的技术事业群(ATG)开发,目前该系统已 ...
- centos6安装创建kvm虚拟机
的虚拟机名 virsh domid name # 显示虚拟机id号 virsh domuuid name ...
- MYSQL 排序和分组
一.MYSQL 中有两种排序方式: 1:通过有序索引顺序扫描直接返回有序数据,这种方式在使用explain 分析查询的时候显示为Using Index ,不需要额外的排序,操作效率较高. 2: 是通过 ...
- INTERVIEW #5
笔试 150min,3题,每题100分,自己果然还是个蒟蒻呢~ 最近状态好差,虽然做了一些题,但还是考得稀烂,大概有几点需要加强: 独立做题,不要一边看板子一边写代码,更不要一开始就看题解: 对之前研 ...
- 虚拟化云计算平台Proxmox VE
1.虚拟化技术介绍 1.1.OpenVZ 简介 OpenVZ 是开源软件, 是基于Linux平台的操作系统级服务器虚拟化解决方案,它是基于Linux内核和作业系统的操作系统级虚拟化技术. OpenVZ ...
- JMeter Nmon Tool V2.0 插件
很早之前宝路已将nmon监控功能集成到了JMeter中,自己在使用旧版本时,也有诸多不满意的地方.趁着五一假期(基本都是晚上,白天要陪孩子),对插件底层代码进行了重构,自己还要反复测试调整,最晚的一次 ...
- Python基础03 id
id id(x)对应变量x所引用对象的内存地址.可以把id(x)看成变量x的身份标识. is 有时在编程中需要与变量的身份标识打交道,但不是通过 id 函数,而是 is 操作符. The operat ...
- 树形dp compare E - Cell Phone Network POJ - 3659 B - Strategic game POJ - 1463
B - Strategic game POJ - 1463 题目大意:给你一棵树,让你放最少的东西来覆盖所有的边 这个题目之前写过,就是一个简单的树形dp的板题,因为这个每一个节点都需要挺好处 ...
- docker-compose安装rabbitmq
编写时间:2020-05-08 参考文档:docker安装rabbitmq 1. 编写docker-compose.yml version: '3' services: rabbitmq: image ...