zoukankan      html  css  js  c++  java
  • redis哨兵模式

      上一篇我们说了redis的主从配置,我们也配置了一个主节点和两个从节点,主节点中写入的数据会自动同步到从节点中

      但是这种方式有个缺陷,就是当主节点挂了,整个redis服务就不能用了,需要人为的去重启或者进行重新配置主节点,比较麻烦;

      所以就有人想啊,要是专门有个人在旁边守着主节点,每隔一段时间就去看看主节点能不能用,如果不能用了,那就选择其中一个从节点来对外提供服务,因为从节点中数据和主节点中是一样的,刚好可以完美使用

      但是直接请个人就太粗暴了,需要花银子,于是今天说的哨兵模式(sentinel)就起到这个人的作用,专门来帮你看着主节点是否正常

    1. sentinel机制的配置

      哨兵机制就是相当于请了一个人帮你看着的你redis主节点,当你的主节点A挂了之后,就会挑选一个从节点B变成主节点,就算后面A节点修好了回来了,此时A只能当从节点,这也叫做故障转移

      下图就是配置哨兵需要的文件

      哨兵的话需要监听所有的主从节点,难道我们需要配置所有的节点的ip和端口吗?这也太傻了

      哨兵只需要配置主节点,就可以获取到所有主从节点的信息,其中原理就是哨兵通过和主节点保持心跳来看看主节点是否正常(不知道心跳的,可以看做每隔几秒钟就ping一下主节点)

      sentinel.conf 文件如下,其中mymaster是给主节点取的名字,随意;然后就是主节点的ip+端口,最后的1表示只有一个哨兵

      注意:如果是远程redis,然后你要在springboot配置文件中配置哨兵节点,就需要在下面这里添加一行: bind 0.0.0.0    表示可以接受远程连接

    sentinel monitor mymaster 127.0.0.1 5000 1

      启动sentinel.bat  文件如下:

    redis-server.exe ./sentinel5000.conf --sentinel

    2. sentinel的使用 

      然后双击启动sentinel.bat就可以启动哨兵去监听所有节点了;

      当你启动了之后,你会发现一个很有意思的东西,就是sentinel.conf 配置文件自动的改变了

      现在我们的主节点是5000端口的,我们把5000端口的redis给关了,等几秒钟,再看看这个配置文件变了

      此时我们在6000端口的redis是主节点,可以进行读写操作,并且会同步数据到从节点

     

    --------------以上皆原创,给未来的自己留下一点学习的痕迹!--------
  • 相关阅读:
    HDU 1166 敌兵布阵 (线段树 & 树状数组)
    HDU 1286 找新朋友 (欧拉函数)
    HDU 2203 亲和串 (KMP)
    HDU 1394 Minimum Inversion Number (归并排序 | 线段树 | 数状数组)
    HDU Leftmost Digit
    POJ 1195 Mobile phones
    C# 用jquery多个文件上传
    Ajax.NET Professional csharp DropDownList两级联无刷新绑定
    C# 公农历算法 ChineseLunisolarCalendar的一点思路
    csharp webform Button控件OnClick,OnClientClick事件
  • 原文地址:https://www.cnblogs.com/wyq1995/p/14347612.html
Copyright © 2011-2022 走看看