Redis HA
当前版本中,Redis 主要用于 限速计数,不再承担运行时配置源。
[!NOTE] Aidy Gateway 的限速能力依赖 Redis Script,因此仍不支持 Redis Cluster 作为高可用方案。
支持矩阵
| Redis 部署模式 | PG 运行时配置 | 入口限流 | 上游限流 | 说明 |
|---|---|---|---|---|
| 单实例 / 主从(固定地址) | 不适用 | 支持 | 支持 | 使用 redis://host:port/db |
| Sentinel | 不适用 | 支持 | 支持 | 使用 redis+sentinel://sentinel1:26380,sentinel2:26380/db?master=<master-name> |
| Redis Cluster(分片) | 不适用 | 不支持 | 不支持 | - |
Sentinel 配置
URL 格式
redis+sentinel://[username:password@]sentinel1:26380,sentinel2:26380,sentinel3:26380/db?master=<master-name>[&sentinel_username=<user>][&sentinel_password=<pass>]
说明:
sentinel1:26380,sentinel2:26380,...填的是 Sentinel 节点地址,不是 Redis master 的业务端口master必填,表示 Sentinel 中登记的 master namedb为 Redis database 编号;未指定时默认为0- URL 中的
username/password用于 Redis 数据节点认证 - 如果 Sentinel 本身开启认证,需通过
sentinel_username/sentinel_password指定
配置示例
限流存储
[rate-limit]
redis = "redis+sentinel://1.1.1.1:26380,2.2.2.2:26380,3.3.3.3:26380/1?master=<master-name>"
headers_mode = "on-limit"
备注
- 当前版本没有任何 Redis-based dynamic config watch loop
- Redis 主从切换影响的是限速链路,不再影响运行时配置可见性
- 运行时配置统一由 PostgreSQL 提供,见 PG 运行时与 Seed