*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"

*常见错误

  1. REDIRECT 无效:指定的 client-id 不存在或已关闭。

*最佳实践

  1. 客户端缓存:开启客户端缓存减少网络往返,本地缓存热点数据,Redis 主动通知失效。
  2. PREFIX 过滤:只追踪业务相关前缀,减少无效通知。

*FAQ

Q: CLIENT TRACKING 和本地缓存有什么区别? A: CLIENT TRACKING 是 Redis 提供的客户端缓存机制,Redis 会在数据修改时主动通知客户端失效,保证一致性。普通本地缓存需要 TTL 或轮询更新。