
flant/redis-sentinel-proxyredis-sentinel-proxy 是由 enriclluelles 开发的轻量级 TCP 代理工具,基于 Go 语言编写。其核心用途是通过 Redis Sentinel 自动发现 Redis 主节点,并将本地端口接收到的 TCP 请求透明转发至该主节点,解决客户端无法直接与 Sentinel 交互或需统一访问入口的场景需求。
NAME 的 Redis 主节点地址及端口。PORT),将所有接收到的 TCP 请求转发至通过 Sentinel 发现的 Redis 主节点。工具通过命令行参数配置,语法如下:
bash./redis-sentinel-proxy -listen IP:PORT -sentinel SENTINEL_ADDR:PORT -master NAME
| 参数名 | 说明 | 格式示例 | 是否必填 |
|---|---|---|---|
-listen | 本地监听地址及端口,用于接收客户端 TCP 请求(IP 为 0.0.0.0 表示监听所有网卡) | 0.0.0.0:6379 | 是 |
-sentinel | Redis Sentinel 服务器地址及端口(Sentinel 默认端口为 26379) | sentinel-host:26379 | 是 |
-master | Redis 主节点名称,需与 Sentinel 中配置的主节点名称完全一致 | mymaster | 是 |
docker run 部署bashdocker run -d \ --name redis-sentinel-proxy \ -p 6379:6379 \ # 宿主机端口:容器内监听端口(需与 -listen 参数端口一致) enriclluelles/redis-sentinel-proxy \ # 镜像名称(实际使用时需替换为官方/私有仓库地址) -listen 0.0.0.0:6379 \ # 容器内监听所有网卡的 6379 端口 -sentinel 192.168.1.100:26379 \ # 替换为实际 Sentinel 地址:端口 -master mymaster # 替换为实际 Redis 主节点名称
docker-compose 部署创建 docker-compose.yml 文件:
yamlversion: '3.8' services: redis-sentinel-proxy: image: enriclluelles/redis-sentinel-proxy # 替换为实际镜像地址 container_name: redis-sentinel-proxy restart: unless-stopped # 异常退出时自动重启 ports: - "6379:6379" # 宿主机端口映射(左侧宿主机,右侧容器内监听端口) command: - -listen - "0.0.0.0:6379" # 容器内监听地址及端口 - -sentinel - "sentinel-host:26379" # 替换为实际 Sentinel 地址:端口 - -master - "mymaster" # 替换为实际 Redis 主节点名称
启动命令:
bashdocker-compose up -d
-listen 参数的容器内端口需与 docker run/docker-compose 中的端口映射右侧值一致。-master 参数值必须与 Sentinel 中注册的主节点名称完全一致,否则无法获取主节点信息。docker logs <容器名>)排查主节点发现或转发异常。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务