Redis的主从模式配置简单,在提高单台服务器数据库读性能的同时,也能间接性的提高写的能力;与此同时,它的弊端也显而易见,那就是当主节点Master宕机后,整个集群就没有可写的节点了,为此就衍生出了一种新的模式,Sentinel(哨兵模式)

Redis的Sentinel系统用于管理多个Redis服务器,主要的工作可分为三点:

1.Monitoring(监视):Sentinel会不断检查主服务器和从服务器运作是否正常

  1)Sentinel可以监控任意多个Master和该Master下的Slaves

  2)同一哨兵下的,不同主从模型,彼此相互独立

  3)Sentinel会不断监察Master和Slaves是否正常

2.Notification(提醒):当被监控的某个Redis服务器出现问题时,可通过API向管理员或其他应用程序发送通知信息

3.Automatic failover(自动故障迁移):当一台主服务器宕机后,Sentinel会开始自动故障迁移的操作,它会通过半数选举的方式,在失效的主服务器中的从服务器变成主服务器;当客户端连接失效的主服务器时,集群也会向客户端返回新主服务器的地址

  1)Sentinel网络:监控同一个Master的Sentinel会自动连接,组成一个分布式的Sentinel网络,互相通信并相互交换监视服务器的信息。

  2)故障切换的过程:

    1.当任何一个Sentinel发现被监控的Master下线时,会通知其他的Sentinel,并进行投票决定该Master是否下线(由于遵循半数原则,所以Sentinel通常配奇数个);

    2.当Sentinel确定Master下线后,会在所有的Slaves中,选举一个新的结点升级成为Master,其他结点成为该Master的Slave

    3.当下线的Master恢复后,也成为新Master的Slave

配置流程:

1.创建Sentinels目录(s1,s2,s3分别表示三个哨兵)

2.在安装目录下将sentinel.conf拷贝到三个哨兵目录中

3.依次修改s1,s2,s3下的配置文件sentinel.conf(绑定ip,保护模式,端口,Sentinel)

s1的配置

1)是哨兵的名字 2)监视Master的ip地址 3)监视Master的端口 4)在投票过程中超过2个哨兵同意Master下线时,Master即视为宕机状态

s2的配置

s3的配置

4.开启三个不同端口的Redis服务端

6380端口的redis-server(Master)

6381端口的redis-server(Slave)

6382端口的redis-server(Slave)

5.分别通过s1,s2,s3中的配置问起开启三个哨兵(由于监视的为同一个Master,三个哨兵会自动组成哨兵网络)

s1配置文件启动的哨兵

s2配置文件启动的哨兵

s3配置文件启动的哨兵

6.测试

  1)断开Master(端口为6380的redis-server)

  两个Slaves同时无法连接Master的警告

  6381端口的Slave

  6382端口的Slave

  Sentinel进行检测,投票,选举的操作

  6381redis-server变为新Master,6382redis-server成为6381的Slave

  6381界面

  6382界面

  2)原Master6380端口的redis-server重新上线

  6380端口的redis-server成为6381端口redis-server的Slave

转载于:https://www.cnblogs.com/lch-Hao/p/10940980.html

Redis集群(二)Sentinel哨兵模式相关推荐

  1. redis集群之主从复制+哨兵模式

    文章目录 一.redis集群之主从复制 1.1.集群介绍 1.2.搭建过程 1.3.验证 二.redis集群之哨兵模式 2.1.部署过程 1.搭建主从复制集群 2.设置哨兵模式的配置文件 3.启动哨兵 ...

  2. Redis 主从集群搭建及哨兵模式配置

    Redis 主从集群搭建及哨兵模式配置 最近搭建了redis集群及哨兵模式,为方便以后查看特此记录下来: 1.Redis安装 2.主从架构 2.1 Redis主从架构图 2.2Redis主从结构搭建 ...

  3. redis集群的几种模式

    redis集群的几种模式 主从模式 哨兵模式 Cluster集群模式(推荐) 三种模式都有搭建成功,相比之下,个人还是推荐Cluster集群 主从模式 主从模式(Master-Slave Replic ...

  4. redis集群的三种模式

    通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据.但是由于数据是存储在一台服务器上的,如果这台服务器出 ...

  5. 搭建高可用的redis集群,避免standalone模式带给你的苦难

    现在项目上用redis的话,很少说不用集群的情况,毕竟如果生产上只有一台redis会有极大的风险,比如机器挂掉,或者内存爆掉,就比如我们生产环境 曾今也遭遇到这种情况,导致redis内存不够挂掉的情况 ...

  6. Redis集群——去中心化模式

    去中心化模式特点 之前介绍的主从模式和哨兵模式都只有一个master主节点,如果写操作并发比较大时,这两个模式就会堵塞.这时就可以使用集群化模式,也称之为去中心化模式,其特点是多master和多sla ...

  7. 玩转 Redis 集群之 Sentinel

    Redis作为内存数据库,需要具备高可用的特点,不然如果服务器宕机,还在内存里的数据就会丢失.我们最常用的高可用方法就是搭建集群,master机器挂了,可以让slave机器顶上,继续提供服务.但是Re ...

  8. redis集群的发布订阅模式

    项目开发过程中,遇到需要发消息的情况,是不是脑海里不自主的浮现kafka.rabbitmq等常用的消息队列?但如果消息非常简单,并且用量也不大,消息队列就会有点大材小用了吧,忽然想起了redis 也有 ...

  9. 玩转Redis集群之Sentinel

    Redis作为内存数据库,需要具备高可用的特点,不然如果服务器宕机,还在内存里的数据就会丢失.我们最常用的高可用方法就是搭建集群,master机器挂了,可以让slave机器顶上,继续提供服务.但是Re ...

  10. redis入门及其集群搭建、哨兵模式

    一.Nosql概述 1.为什么要用Nosql 1.1 单机 MySQL 的美好时代 来源博客(https://www.cnblogs.com/lukelook/p/11135209.html) 在90 ...

最新文章

  1. java servlet 多线程_Servlet的多线程和线程安全
  2. vue+element-ui实现分页
  3. js赋值后 改变现有数据会修改原来的数据
  4. 面试题56: 数组中数字出现的次数
  5. JAVA错误:无法从静态上下文中引用非静态变量 this
  6. 前端学习(2753):创建新页面和页面配置
  7. loadrunner具体实例教你如何进行结果分析
  8. 计算机二级vb语言题库百度云,[计算机二级vb题库]计算机二级VB语言程序设计考试题及答案.doc...
  9. 微商分销代理商城源码带代理等级和升级条件 thinkphp框架
  10. oracle锁表查询及释放进程
  11. 《嵌入式 – GD32开发实战指南》第9章 呼吸灯
  12. 下载blob地址或m3u8格式视频方法以及常见问题解决
  13. 学完大数据基础,可以按照我写的顺序学下去
  14. Verilog除法器(32位无符号+带符号)
  15. ui-bootstrap-tpls 中文 现在还不全的啊~,组件太多了,有空就更新
  16. 性能优化: http 请求的过程及潜在的性能优化点
  17. 微服务RPC原理【深度好文】
  18. Layui--入门指南
  19. 微信小程序获取定位后使用腾讯地图解析到市位置
  20. cyber physical system

热门文章

  1. 远程控制软件用户群分析
  2. 考前必背的50个知识点——系统集成项目管理工程师考试
  3. 四种进程或线程同步互斥的控制方法
  4. Xshell用于windows主机和linux虚拟机之间互传文件
  5. python list倒序_python数据分析(1):内建序列函数
  6. Nginx源码编译及安装
  7. nodejs安装anywhere快速启动一个web服务
  8. c语言 graph,基于图(graph)的应用举例
  9. 2.5配置自定义HttpMessageConverters
  10. 【渝粤教育】电大中专成本会计 (2)_1作业 题库