*Redis CLIENT TRACKINGINFO 命令

CLIENT TRACKINGINFO 返回当前客户端连接的客户端缓存追踪(Client-side Caching)配置信息。


*语法

CLIENT TRACKINGINFO

*参数说明

无参数。


*返回值

  • Array:键值对数组,描述当前客户端的追踪配置

*时间复杂度

O(1)

*

*示例

*未启用追踪

> CLIENT TRACKINGINFO
1) "flags"
2) 1) "off"
3) "redirect"
4) (integer) -1
5) "prefixes"
6) (empty array)

*启用追踪后

> CLIENT TRACKING ON
OK
> CLIENT TRACKINGINFO
1) "flags"
2) 1) "on"
3) "redirect"
4) (integer) 0
5) "prefixes"
6) (empty array)

*带前缀追踪

> CLIENT TRACKING ON PREFIX user: PREFIX session:
OK
> CLIENT TRACKINGINFO
1) "flags"
2) 1) "on"
3) "redirect"
4) (integer) 0
5) "prefixes"
6) 1) "user:"
   2) "session:"

*返回值字段说明

字段 说明
flags 追踪状态标志:on / off / broken
redirect 重定向客户端 ID(-1=未启用,0=自身,>0=其他客户端)
prefixes 追踪的前缀数组(空数组表示追踪所有键)

*常见错误

错误 原因 解决
ERR wrong number of arguments 提供了多余参数 CLIENT TRACKINGINFO 不接受参数

*最佳实践

  • 用于调试客户端缓存配置,确认追踪是否生效
  • 配合 CLIENT GETREDIR 查看重定向配置
  • 在启用客户端缓存前,先检查 TRACKINGINFO 确认当前状态
  • 使用 RESP3 协议时,重定向为 0 表示在当前连接接收失效消息

*FAQ

Q1: 什么是客户端缓存追踪? A: Redis 的客户端缓存功能,服务端追踪客户端缓存了哪些键,当这些键变更时主动通知客户端失效。

Q2: broken 状态是什么意思? A: 表示追踪状态异常,通常是因为重定向目标客户端断开连接导致无法发送失效消息。

Q3: 追踪所有键和前缀追踪有什么区别? A: 不带 PREFIX 时追踪所有键,开销较大;带 PREFIX 时只追踪匹配前缀的键,更精确高效。