环境:基于主从复制(上一节)

原理:Redis的哨兵机制:https://www.cnblogs.com/leeSmall/p/8398401.html

实现:(三个主机都需操作)(其中10.0.0.50,需要将配置文件redis.conf的masterauth修改为123456)

  • 复制源目录中的sentinel.conf文件到主目录
    [root@Su ~]# cp /application/tools/redis-5.0.7/sentinel.conf /application/redis/
  • 创建sentinel目录
    [root@Redis1 ~]# mkdir /application/redis/sentinel
  • 修改配置文件/application/redis/sentinel.conf
    #####  修改的参数   #####
    #protected-mode no
    protected-mode no    #或者采用protected-mode yes,bind 0.0.0.0
    
    #daemonize no
    daemonize yes        #后台启动
    
    #logfile ""          #默认输出到控制台
    logfile /application/redis/sentinel/sentinel.log
    
    #dir /tmp            #工作空间
    dir /application/redis/sentinel/
    
    #sentinel monitor <master-name> <ip> <redis-port> <quorum>
    #sentinel monitor mymaster 127.0.0.1 6379 2    #哨兵监控master,mymaster表示名称,2表示两个哨兵判断故障
    sentinel monitor su-master 10.0.0.50 6379 2    #注意将配置文件中的所有的mymaster修改为su-master
    
    #sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
    sentinel auth-pass su-master 123456              #redis主节点的密码,requirepass
    
    #sentinel down-after-milliseconds mymaster 30000
    sentinel down-after-milliseconds su-master 30000    #哨兵判断宕机时间,如果超过30s则判定为宕机
    
    #sentinel parallel-syncs mymaster 1
    sentinel parallel-syncs su-master 1               #重新选举后,同步数据的并行个数
    
    #sentinel failover-timeout mymaster 180000 
    sentinel failover-timeout su-master 180000         #主备切换的超时时间,如果主备切换超过3分钟,则超时
  • 依次启动Redis和sentinel
    [root@Su redis]# /etc/init.d/redis_init_script start
    [root@Su redis]# /application/redis/bin/redis-sentinel sentinel.conf
    [root@Redis1 redis]# /etc/init.d/redis_init_script start
    [root@Redis1 redis]# /application/redis/bin/redis-sentinel sentinel.conf
    [root@Redis2 redis]# /etc/init.d/redis_init_script start
    [root@Redis2 redis]# /application/redis/bin/redis-sentinel sentinel.conf
  • 查看sentinel.lgo(可以看见redis1和redis2都想su-master节点上添加
    [root@Su redis]# cat sentinel/sentinel.log 
    1174:X 10 Jan 2020 15:30:59.904 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    1174:X 10 Jan 2020 15:30:59.904 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=1174, just started
    1174:X 10 Jan 2020 15:30:59.904 # Configuration loaded
    1175:X 10 Jan 2020 15:30:59.917 * Increased maximum number of open files to 10032 (it was originally set to 1024).
    1175:X 10 Jan 2020 15:30:59.918 * Running mode=sentinel, port=26379.
    1175:X 10 Jan 2020 15:30:59.918 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    1175:X 10 Jan 2020 15:30:59.920 # Sentinel ID is 8b0389cf0fdc39755ca1f14ceff02626eb69fe48
    1175:X 10 Jan 2020 15:30:59.920 # +monitor master su-master 10.0.0.50 6379 quorum 2
    1175:X 10 Jan 2020 15:30:59.921 * +slave slave 10.0.0.51:6379 10.0.0.51 6379 @ su-master 10.0.0.50 6379
    1175:X 10 Jan 2020 15:30:59.923 * +slave slave 10.0.0.52:6379 10.0.0.52 6379 @ su-master 10.0.0.50 6379
    1175:X 10 Jan 2020 15:32:21.976 * +sentinel sentinel 44c85cebbd14e60b813300392692442b4d605a79 10.0.0.51 26379 @ su-master 10.0.0.50 6379
    1175:X 10 Jan 2020 15:32:46.879 * +sentinel sentinel cbd021e3221d6f7886f1c95f2eacdde1ac717208 10.0.0.52 26379 @ su-master 10.0.0.50 6379

     
  • 查看三个节点的状态信息

     
  • 测试(手动将master宕机)

    ###成功切换master###
     
  • 重启10.0.0.50(原来的master),是否会抢占master?答案是:不会。

 

连接哨兵命令: 

[root@Su redis]# redis-cli -p 26379
127.0.0.1:26379> sentinel master su-master 
 1) "name"
 2) "su-master"
 3) "ip"
 4) "10.0.0.51"
 5) "port"
 6) "6379"
 7) "runid"
 8) "40ac65cc65e635412ad8b7032b284e8409a1688c"
 9) "flags"
10) "master"
11) "link-pending-commands"

# 查看su-master下的master节点信息 sentinel master su-master

# 查看su-master下的slaves节点信息 sentinel slaves su-master

# 查看su-master下的哨兵节点信息 sentinel sentinels su-master

 

SpringBoot 集成Redis哨兵-配置

spring:
  redis:
    database: 1
    password: 123456
    sentinel:
      master: imooc-master
      nodes: 10.0.0.50:26379,10.0.0.51:26379,10.0.0.52:26379


 

最后修改于 2020-01-10 14:59:47
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇