跳到主要内容

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 name
  • db 为 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