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

    Master挂了,如何保证可用性,实现继续读写

    什么是哨兵

    Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是 Redis 高可用解决方案,哨兵可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务宕机后,会把这个master下的某个从服务升级为master来替代已宕机的master继续工作。

    示例图

    图片描述

    配置哨兵监控master

    创建并且配置sentinel.conf:

    • 普通配置

      port 26379
      pidfile "/usr/local/redis/sentinel/redis-sentinel.pid"
      dir "/usr/local/redis/sentinel"
      daemonize yes
      protected-mode no
      logfile "/usr/local/redis/sentinel/redis-sentinel.log"
      
    • 核心配置

      # 配置哨兵
      sentinel monitor mymaster 127.0.0.1 6379 2
      # 密码
      sentinel auth-pass <master-name> <password>
      # master被sentinel认定为失效的间隔时间
      sentinel down-after-milliseconds mymaster 30000
      # 剩余的slaves重新和新的master做同步的并行个数
      sentinel parallel-syncs mymaster 1
      # 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个时间后,会由其他的哨兵来处理
      sentinel failover-timeout mymaster 180000
      

    启动哨兵 x 3

    redis-sentinel sentinel.conf

    测试

    1. master挂了,看slave是否成为master
    2. master恢复,观察slave状态

    结论

    master挂了以后,由于哨兵监控,剩余slave会进行选举,选举后其中一个成为master,当原来的master恢复后,他会成为slave。

     
  • 相关阅读:
    虚拟目录
    【C/C++学习】之十四、RTTI
    【C/C++学习】之十五、内存管理
    【C/C++学习】之十六、关于空指针NULL、野指针、通用指针
    统计在线人数
    [置顶] 分步实现具有分页功能的自定义DataList控件【附源代码】
    进制转换
    栈和队列2 数据结构和算法24
    二进制跟十六进制
    进制转换
  • 原文地址:https://www.cnblogs.com/wjx6270/p/13396318.html
Copyright © 2011-2022 走看看