*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 时只追踪匹配前缀的键,更精确高效。