• redis-sentinel (哨兵)


    • 什么是redis-sentinel?

      • 当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能。
      • 而redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群,自动发现master宕机,进行自动切换slave > master。
    • sentinel的主要功能

      • 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识
      • 如果被标识的是主节点,sentinel就会和其他的sentinel节点“协商”,如果其他节点也认为主节点不可达,就会选举一个sentinel节点来完成自动故障转义
      • 在master-slave进行切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
    1. 环境准备

      #三个redis数据库实例 配置好一主多从
      #6379.conf
      port 6379
      daemonize yes
      logfile "6379.log"
      dbfilename "dump-6379.rdb"
      dir "/var/redis/data/"
      
      #6380.conf 
      port 6380
      daemonize yes
      logfile "6380.log"
      dbfilename "dump-6380.rdb"
      dir "/var/redis/data/"
      slaveof 127.0.0.1 6379
      
      #6381.conf 
      port 6381
      daemonize yes
      logfile "6381.log"
      dbfilename "dump-6381.rdb"
      dir "/var/redis/data/"
      slaveof 127.0.0.1 6379
      
    2. 查看主从关系是否正确

      redis-server 6379.conf
      redis-server 6380.conf
      redis-server 6381.conf   #开启三个redis库 之后可以直接通过端口调用
      
      redis-cli -p 6379 info replication 
      redis-cli -p 6380 info replication  
      redis-cli -p 6381 info replication  
      
    3. 配置哨兵进程,同样是三个,配置除了监听端口 没有别的不同,另外需要注意:哨兵第一次启动后,会修改配置文件,如果错了,得删除配置文件,重新写

      #sentinel-26379.conf  
      port 26379  
      dir /var/redis/data/
      logfile "26379.log"
      
      // 当前Sentinel节点监控 192.168.182.130:6379 这个主节点
      // 2代表判断主节点失败至少需要2个Sentinel节点节点同意
      // s21ms是主节点的别名
      sentinel monitor s21ms  127.0.0.1 6379 2
      
      //每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
      sentinel down-after-milliseconds s21ms  20000
      
      //当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
      sentinel parallel-syncs s21ms 1
      
      //故障转移超时时间为180000毫秒
      sentinel failover-timeout mymaster 180000
      //后台运行
      daemonize yes 
      
    4. 启动哨兵

      redis-sentinel sentinel-26379.conf
      redis-sentinel sentinel-26380.conf
      redis-sentinel sentinel-26381.conf
      
    5. 验证哨兵是否正常

      redis-cli -p 26379 info sentinel
      master0:name=s21ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
      
    6. 干掉主库 检测哨兵的是否正常可以切换状态

      kill -9 12749
      ps -ef|grep redis
      redis-cli -p 6380 info replication
      redis-cli -p 6381 info replication
      redis-cli -p 6380 info replication
      redis-cli -p 6381 info replication
      
  • 相关阅读:
    【curl】Linux下命令行curl详解
    【httpwatch】httpwatch对测试的应用
    【岗位知识小记录】
    linux系统修改route路由
    yum无法正常安装,提示如下 There are no enabled repos Run "yum repolist all"
    Ubuntu14.04切换root用户
    【AAA】AAA协议介绍
    各种工具网站
    任职资格:
    推荐一个下载mac应用的良心网站
  • 原文地址:https://www.cnblogs.com/kevin6/p/11799521.html
Copyright © 2020-2023  润新知