首页/数据/Redis 进阶速查/广播模式追踪:BCAST 与 PREFIX
内存与管理99 条

广播模式追踪:BCAST 与 PREFIX

CLIENT TRACKING ON BCAST PREFIX 前缀 用前缀广播取代按键记录:服务端不再为每个键维护追踪记录,内存更省,代价是前缀内变更都会通知。

Redis 进阶速查数据更新于 2026-10-13

BCAST 广播追踪是什么

CLIENT TRACKING ON BCAST PREFIX user: 用前缀广播取代按键记录:服务端不再为客户端读过的每个键维护追踪记录,只要匹配前缀的键发生变更就发通知。省掉了按键跟踪表的内存与维护成本,代价是粒度变粗——前缀范围内任何键的变更都会触发失效,客户端只能整片丢弃本地缓存。

基本信息

命令形式CLIENT TRACKING ON BCAST PREFIX <前缀>
内存代价不维护按键级的追踪表
通知粒度前缀内任意键变更都会通知
前缀数量一条连接可以指定多个前缀,客户端需自行管理
适用场景读多写少且键前缀划分清晰的业务

两种模式对照

维度默认按读跟踪BCAST 前缀广播
内存占用与唯一被读键数量成正比与前缀数量相关,通常小得多
通知精度精确到具体键前缀范围内全部通知
客户端处理按返回的键丢弃对应缓存按前缀批量失效
适用场景键空间大且读模式分散前缀清晰、读多写少

示例

示例
redis-cli CLIENT TRACKING ON BCAST PREFIX user:            # 单前缀广播
redis-cli CLIENT TRACKING ON BCAST PREFIX user: PREFIX order:   # 多个前缀
redis-cli CLIENT TRACKINGINFO                              # 确认当前跟踪配置
redis-cli CLIENT TRACKING OFF
# 广播模式不使用按键级追踪表,tracking-table-max-keys 主要约束默认模式

典型使用场景

  • 前缀清晰的业务缓存:按业务对象前缀组织本地缓存
  • 键空间极大:逐键跟踪不现实时改用广播
  • 客户端希望批量失效:一次通知清掉一整组缓存
  • 通知噪声评估:按真实写入频率估算前缀内的通知量
  • 模式混用排查:确认不同连接各自使用的跟踪方式
前缀划分得越细通知越精准,但前缀数量也随之增加;客户端最好按前缀组织本地缓存,才能把一次通知高效映射成批量失效。
前缀范围过大时,任何一个相关键的写入都会让整片本地缓存失效,通知噪声可能把缓存收益完全抵消;上线前用真实写入频率估算通知量。

易错点

  • 前缀范围过大,噪声通知淹没客户端,本地缓存收益被抵消
  • 把 BCAST 与默认模式混用,语义与失效行为理解混乱
  • 客户端本地缓存不按前缀组织,收到通知后无法高效失效
  • 以为广播模式仍受按键追踪表上限约束,容量规划依据错位
  • 上线前不估算通知量,写入高峰期的失效风暴拖垮客户端

数据来源与参考

  • Redis 官方文档:广播模式客户端缓存
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌