
patrickdk/redis-sentinel-proxyredis-sentinel-proxy是一个轻量级命令行工具,旨在解决Redis集群中主节点动态变化的访问问题。它通过定期查询Redis Sentinel服务器,自动获取指定主节点组的当前主节点地址,并将所有接收到的TCP请求转发至该主节点,使客户端无需直接感知主节点变化即可持续访问Redis服务。
适用于采用Redis Sentinel进行主从复制和故障转移的Redis集群环境。当主节点发生故障并由Sentinel自动切换后,客户端可通过该代理工具继续访问新主节点,无需手动更新配置。尤其适合无法直接处理Sentinel协议的客户端或需要简化Redis访问配置的场景。
支持通过环境变量或命令行参数进行配置,参数说明如下:
| 环境变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
| LISTEN | 代理绑定的IP和端口(格式:IP:PORT) | 否 | :9999 |
| SENTINEL | Redis Sentinel服务器地址(或地址列表)和端口 | 否 | :26379 |
| MASTER | 主节点组名称 | 否 | mymaster |
| PASSWORD | 用于Sentinel认证的密码 | 否 | -(不启用认证) |
| DEBUG | 是否开启调试输出(true/false) | 否 | false |
| TIMEOUTMS | Sentinel和主节点连接超时时间(毫秒) | 否 | 2000 |
| CHECKMS | 轮询Sentinel检查主节点变化的时间间隔(毫秒) | 否 | 250 |
修改Kubernetes部署清单,配置主节点组名称和Sentinel地址:
bashvim kubernetes/redis-sentinel-proxy-deployment.yaml ... args: - "-master" - "primary" # 指定主节点组名称(替换为实际名称) - "-sentinel" - "redis-sentinel.$(NAMESPACE):26379" # 替换为实际Sentinel服务地址
使用kubectl创建或更新deployment资源:
bashkubectl apply -f kubernetes/redis-sentinel-proxy-deployment.yaml deployment "redis-sentinel-proxy" configured
确认代理Pod正常运行:
bashkubectl get pods redis-sentinel-proxy-2064359825-s4n0k 1/1 Running 0 1d
通过Service资源暴露代理,使客户端可访问:
bashkubectl apply -f kubernetes/redis-sentinel-proxy-service.yaml
工具支持通过命令行参数直接配置,基础格式如下:
bash./redis-sentinel-proxy -listen IP:PORT -sentinel :SENTINEL_PORT -master NAME
注:命令行参数与环境变量功能对应,具体优先级以工具实现为准(通常命令行参数优先级更高)。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务