首页 > 数据库 >redis 哨兵模式开启方案

redis 哨兵模式开启方案

时间:2024-08-19 12:52:12浏览次数:15  
标签:mymaster redis 开启 192.168 哨兵 故障 sentinel 节点

哨兵模式

环境准备

  • 准备三台系统为CentOS7的主机
    • master:192.168.152.71
    • slave1:192.168.152.72
    • slave2:192.168.152.73
      .
  • 哨兵模式的介绍:
    • Redis 哨兵模式(Redis Sentinel)用于提供高可用性和监控功能,主要包括以下几个方面的作用:
      1. 监控: 哨兵模式会不断监控主节点和从节点的健康状况。如果主节点出现故障,哨兵能够检测到并进行处理。
      2. 自动故障转移: 当哨兵发现主节点不可用时,会自动将一个从节点升级为新的主节点,确保服务的持续可用性。
      3. 配置更新: 故障转移后,哨兵会更新所有从节点的配置,使它们指向新的主节点,从而保证系统的一致性和可靠性。
      4. 通知: 哨兵模式可以向系统管理员或其他应用程序发送主节点故障和状态变更的通知,帮助管理员及时了解系统状态。
      5. 客户端重定向: 在主节点发生故障转移后,哨兵能够通知客户端新的主节点的地址,使客户端能够重新连接到正确的节点。

一 、配置 sentinel 模式

再设置哨兵模式前请先确认,已经开启了主从复制 redis 主从复制方案

  1. 进入 redis 的安装目录,找到 sentinel.conf 文件

    cd /opt/redis-4.0.9/
    vim ./sentinel.conf
    

    再三台主机的该文件中修改一下配置

    改 17 行 # protected-mode no 为;解掉注释即可

    protected-mode no  # 关闭保护模式
    

    改 69 行 sentinel monitor mymaster 127.0.0.1 6379 2

    sentinel monitor mymaster 192.168.152.71 6379 2
    
    # mymaster:这是监控的主节点的名字。你可以用任何你喜欢的名字来代替 mymaster,它将用于在哨兵中标识该主节点。
    # 192.168.152.71:这是主节点的 IP 地址,哨兵将监控这个地址上的主节点。
    # 6379:这是主节点的端口号,哨兵将连接到这个端口来监控主节点。
    # 2:这是故障转移的阈值,表示当哨兵检测到主节点不可用时,至少需要 2 个哨兵实例(超过半数的哨兵)确认主节点的故障,才能执行故障转移操作。
    

    改 98 行 sentinel down-after-milliseconds mymaster 30000

    sentinel down-after-milliseconds mymaster 3000
    
    # mymaster:这是你在 sentinel monitor 命令中配置的主节点名称,哨兵将对这个主节点应用下线判定规则。
    # 3000:这是哨兵判定主节点为“下线”所需的时间阈值,单位是毫秒。这里设置为 3,000 毫秒(即 3 秒)。如果哨兵在这个时间窗口内没有收到来自主节点的有效响应,哨兵就会将主节点标记为下线。这里设置 3 秒是为了更快的测试,实际为默认值即可
    
    • 注意事项:
      • 较短的时间阈值:设置为 3 秒是比较短的时间阈值。虽然这可以更快地检测到主节点的故障,但也可能导致在网络不稳定或瞬时问题时误判故障。这样可能会导致不必要的故障转移操作,影响系统的稳定性和性能。
      • 配置合理性:在实际部署中,应根据网络环境、系统负载和故障恢复需求合理配置该值。一般情况下,30000 毫秒(30 秒)是比较常见的设置,确保在判断故障之前有足够的时间来处理暂时的网络波动或延迟。

    改 131 行 sentinel failover-timeout mymaster 180000

    sentinel failover-timeout mymaster 10000
    
    # mymaster:这是你在 sentinel monitor 命令中配置的主节点名称。这个命令设置的是针对这个主节点的故障转移超时时间。
    # 10000:这是故障转移超时时间,单位是毫秒。这里设置为 10 秒。这表示在故障转移过程中的各种操作(如故障确认、从节点提升为主节点、配置更新等)必须在 10 秒内完成。如果在这个时间内无法完成所有故障转移操作,故障转移过程可能会被中止或者重新尝试。具体设置可以根据你的系统环境和需求进行调整。
    
  2. 启动 sentinel 模式

    redis-sentinel sentinel.conf > /var/log/redis.log 2>&1 &
    

    可以通过 jobs 命令查看,通过 kill 命令关闭

二、测试

启动之后查看 redis.log 日志

sentinel日志输出的状态信息

  • +reset-master :主服务器已被重置
  • +slave :一个新的从服务器已经被 Sentinel 识别并关联。
  • +failover-state-reconf-slaves :故障转移状态切换到了 reconf-slaves 状态。
  • +failover-state-select-slave :故障转移操作现在处于 select-slave 状态 —— Sentinel 正在寻找可以升级为主服务器的从服务器。
  • failover-state-send-slaveof-noone :Sentinel 正在将指定的从服务器升级为主服务器,等待升级功能完成。
  • failover-end-for-timeout :故障转移因为超时而中止
  • failover-end :故障转移操作顺利完成。所有从服务器都开始复制新的主服务器了
  • no-good-slave :Sentinel 操作未能找到适合进行升级的从服务器。Sentinel 会在一段时间之后再次尝试寻找合适的从服务器来进行升级,又或者直接放弃执行故障转移操作。
  • +sentinel :一个监视给定主服务器的新 Sentinel 已经被识别并添加。
  • +sdown :给定的实例现在处于主观下线状态。
  • -sdown :给定的实例已经不再处于主观下线状态。
  • +odown :给定的实例现在处于客观下线状态。
  • -odown :给定的实例已经不再处于客观下线状态。

停止master主机,看是否转换

+switch-master mymaster 192.168.152.71 6379 192.168.152.73 6379
# master主机从 192.168.152.71 切换到 192.168.152.73

标签:mymaster,redis,开启,192.168,哨兵,故障,sentinel,节点
From: https://blog.csdn.net/thetender/article/details/141321668

相关文章

  • 设备实时数据采集:开启制造业智能化、自动化的新篇章!
    传统制造业在进行生产过程中,会涉及到设备实时数据采集需求,这些数据对于监控生产流程、优化生产效率、保证产品质量以及降低成本等方面至关重要。以下是一些常见的数据采集需求: 1.生产数据:包括生产数量、生产批次、生产速度等;2.质量控制数据:产品尺寸、重量、外观缺陷、性能测......
  • Win7/Win10/Win11开启本地内核调试的方法
    具体内容微软官方文档上都有:https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/performing-local-kernel-debugginghttps://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/setting-up-local-kernel-debugging-of-a-single-computer-manually......
  • 速通Redis
    redis问题总结缓存问题:1.缓存穿透查询一个不存在的数据,MySQL中也查询不到而且也写不进缓存,就导致每次请求都查询数据库解决方案缓存空数据,查询返回数据为空时把空结果缓存:缺点是内存开销变大布隆过滤器:通过哈希检测一个元素是否存在于集合中:在缓存预热时同时预热过滤器,将......
  • 同一个ip:port上同时开启socks5和http代理服务器
    代码如下所示:packagemainimport( "bufio" "errors" "flag" "fmt" "io" "log" "net" "net/http" "strconv" "sync")funcmain(){ addr:=flag.String(&......
  • 基于SpringBoot3框架-数据库乐观锁、悲观锁、Redis、Zookeeper分布式锁的简单案例实现
    1.分布式锁的定义分布式锁是一种在分布式系统中用来协调多个进程或线程对共享资源进行访问的机制。它确保在分布式环境下,多个节点(如不同的服务器或进程)不会同时访问同一个共享资源,从而避免数据不一致、资源竞争等问题。2.分布式锁的工作原理分布式锁的工作原理与单机锁......
  • Java面试题———Redis篇①
    目录1、项目中为什么用Redis2、Redis的数据类型有哪些3、Redis为什么这么快4、Redis的过期删除策略有哪些5、Redis的内存淘汰策略有哪些6、Redis的RDB和AOF区别7、RDB期间可以同时处理写请求吗8、Redis集群有哪些方案1、项目中为什么用Redis我们项目中之所以选择R......
  • Redis可视化工具Redis: Desktop Manager for mac
    RedisDesktopManager是一款适用于MacOSX、Windows和Linux的跨平台Redis数据库管理工具。它具有以下功能特色:Redis可视化工具中文激活版下载地址直观易用:提供了一个易于使用的图形用户界面(GUI),方便用户查看、编辑和管理Redis数据库中的数据。支持大数据库:即便Red......
  • Redis实现分布式锁
    Redis分布式锁是一种在分布式系统中协调多个进程对共享资源访问的同步机制。在单机系统中,可以使用传统的锁机制来保证同一时间只有一个线程访问某个资源。然而,在分布式系统中,由于多个进程可能在不同的服务器上运行,传统的锁机制就不再适用。这时就需要一种跨多个进程的锁机制,即......
  • ansible 开启facts_cache缓存
    目录1.常见的缓存插件及其存储位置2.如何查询缓存的变量总结通过facts_cache缓存的变量通常存储在由Ansible配置文件中指定的位置,具体位置取决于你使用的缓存插件。下面是几个常见的缓存插件和它们的存储方式,以及如何查询这些缓存变量。1.常见的缓存插件及其存储位置j......
  • [Redis]缓存穿透/缓存击穿/缓存雪崩
    缓存穿透用户访问一些不存在的数据,redis没有,于是去mysql查询也没有,这样就发生了两次无效的查询。缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,缓存永远不会生效。这样,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的......