讲师中心 微信公众号
AI工具推荐 视频效率加速

如何利用 Keepalived 监控后端 Redis 哨兵状态实现数据库负载均衡

落墨酱_4628

落墨酱_4628

发布时间:2026-05-22 11:16:05

|

602人浏览过

|

来源于php中文网

原创

Keepalived可通过自定义脚本检测Redis哨兵主节点状态并动态调整VRRP优先级,实现VIP漂移至当前master所在主机,从而完成故障转移而非负载均衡。

如何利用 keepalived 监控后端 redis 哨兵状态实现数据库负载均衡

Keepalived 本身不直接支持 Redis 哨兵(Sentinel)状态的原生监控,也不具备七层(应用层)协议解析能力,无法像 HAProxy 或 Nginx 那样主动连接 Sentinel 查询 SENTINEL get-master-addr-by-name 或判断主从切换结果。但它可以通过自定义健康检查脚本 + VRRP 主备控制,间接实现“基于 Redis 哨兵状态的 VIP 漂移”,从而支撑数据库访问层的高可用切换——这常被误称为“负载均衡”,实则是故障转移驱动的读写入口收敛。

要达成目标,核心思路是:
✅ 让 Keepalived 的 VIP 绑定在当前 Redis 主节点所在宿主机上;
✅ 通过脚本实时探测本地是否为哨兵选出的 master;
✅ 若不是,则主动降低优先级或触发故障转移,让 VIP 漂移到真正持有 master 角色的机器。

以下分三部分说明关键实现:

一、前置条件与架构约束

  • Redis 部署为 3 节点哨兵集群(至少 1 主 2 从 + 3 Sentinel),所有 Redis 实例和 Sentinel 进程运行在物理机或 Docker 宿主机(非容器网络隔离环境);
  • Keepalived 安装在每台 Redis 服务器宿主机上(即与 Redis + Sentinel 共存),而非独立 LB 节点;
  • VIP(如 192.168.3.200)绑定在宿主机网卡(如 eth0),客户端直连该 VIP 访问 Redis;
  • Redis 配置中 bind 0.0.0.0 且 protected-mode no(或配密码),确保 VIP 流量可到达;
  • 禁用 vrrp_strict,避免因缺少 VIP 或单播配置导致启动失败。

二、编写 Redis 哨兵状态检测脚本

在每台 Redis 服务器上创建 /etc/keepalived/check_redis_master.sh:

#!/bin/bash
# 检查本机 Redis 是否为哨兵认定的 master(以 mymaster 为例)
MASTER_IP=$(redis-cli -h 127.0.0.1 -p 26379 SENTINEL get-master-addr-by-name mymaster | head -n1 | tr -d '\r\n')
LOCAL_IP=$(hostname -I | awk '{print $1}')

if [ "$MASTER_IP" = "$LOCAL_IP" ]; then
    exit 0  # 是 master,健康
else
    exit 1  # 不是 master,标记为不健康
fi

赋予执行权限:

redis-tools
redis-tools

按类别查找Redis命令、检测服务器连接、监控键数量和内存占用,支持离线速查表。

下载
chmod +x /etc/keepalived/check_redis_master.sh

⚠️ 注意:mymaster 是你在 sentinel.conf 中配置的监控名;若使用密码,需加 -a <password></password> 参数;脚本超时建议加 timeout 3 包裹。

三、Keepalived 配置(每台均部署,仅 state/priority 差异)

编辑 /etc/keepalived/keepalived.conf:

global_defs {
    router_id redis_master_ha
}

vrrp_script chk_redis {
    script "/etc/keepalived/check_redis_master.sh"
    interval 2          # 每2秒检查一次
    weight -20          # 检测失败时,优先级减20(触发降级)
    fall 2              # 连续2次失败才判定异常
    rise 2              # 连续2次成功才恢复
}

vrrp_instance VI_REDIS {
    state BACKUP        # 所有节点初始设为 BACKUP(避免脑裂)
    interface eth0
    virtual_router_id 88
    priority 100        # 初始优先级统一设为100(实际由脚本动态调整)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass redispw123
    }
    virtual_ipaddress {
        192.168.3.200/24 dev eth0 label eth0:0
    }
    track_script {
        chk_redis
    }
}
  • 启动后,Keepalived 会持续运行检测脚本;
  • 当某台机器成为哨兵选举出的 master,其脚本返回 0 → 优先级保持 100 → 成为 VRRP Master,VIP 自动绑定;
  • 其他机器脚本返回 1 → 优先级变为 80 → 保持 BACKUP 状态,VIP 不绑定;
  • 若原 master 故障,哨兵重新选举,新 master 上脚本恢复返回 0 → 优先级回升 → VIP 漂移完成。

四、客户端访问方式

  • 应用连接 redis://192.168.3.200:6379(VIP);
  • 写操作始终落在当前 VIP 所在节点(即真实 Redis master);
  • 读操作也可走 VIP,但若需读从库,需额外在应用层通过 Sentinel 获取从节点地址 —— Keepalived 不参与读负载分发。

本质上,这不是传统意义的“负载均衡”,而是强一致性主节点服务入口的自动漂移。真正的 Redis 读负载均衡需配合客户端 SDK(如 JedisPool + Sentinel 支持)或中间件(如 Twemproxy、Redis Cluster、或 HAProxy + Lua 脚本)实现。

不复杂但容易忽略。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2703

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6830

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

6306

2024.03.19

服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

457

2023.08.15

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

960

2023.09.08

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

3232

2023.09.19

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

1056

2023.10.09

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

949

2023.10.17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

20

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn