*Redis CLIENT TRACKING 命令
开启或关闭客户端缓存(Client-side caching)。Redis 6.0+ 引入。
*语法
CLIENT TRACKING on | off [REDIRECT client-id] [PREFIX prefix [prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| on/off | 标志 | 是 | 开启或关闭客户端缓存 |
| REDIRECT | Integer | 否 | 将失效通知重定向到指定客户端 |
| PREFIX | String | 否 | 只追踪匹配前缀的 key |
| BCAST | 标志 | 否 | 广播模式,服务器主动推送所有匹配前缀的失效 |
| OPTIN | 标志 | 否 | 选择性加入,只缓存 CLIENT CACHING YES 后的命令 |
| OPTOUT | 标志 | 否 | 选择性退出,默认缓存,CLIENT CACHING NO 后跳过 |
| NOLOOP | 标志 | 否 | 不接收自己修改的 key 的失效通知 |
*返回值
| 条件 | 返回值 |
|---|---|
| 成功 | OK |
*时间复杂度
O(1)
*
*示例
> CLIENT TRACKING on
OK
> CLIENT TRACKING on PREFIX user: BCAST
OK
> CLIENT TRACKING on OPTIN
OK
> CLIENT CACHING yes
OK
> GET user:1001
"Alice"
*常见错误
- REDIRECT 无效:指定的 client-id 不存在或已关闭。
*最佳实践
- 客户端缓存:开启客户端缓存减少网络往返,本地缓存热点数据,Redis 主动通知失效。
- PREFIX 过滤:只追踪业务相关前缀,减少无效通知。
*FAQ
Q: CLIENT TRACKING 和本地缓存有什么区别? A: CLIENT TRACKING 是 Redis 提供的客户端缓存机制,Redis 会在数据修改时主动通知客户端失效,保证一致性。普通本地缓存需要 TTL 或轮询更新。