*Redis CLIENT TRACKING 命令 启用或禁用服务器辅助客户端缓存
*语法
CLIENT TRACKING ON|OFF [REDIRECT client-id] [BCAST] [PREFIX prefix [prefix ...]] [OPTIN] [OPTOUT] [NOLOOP]
*说明
启用或禁用服务器端的键失效通知(invalidation notifications),用于客户端缓存。
核心模式:
- 默认模式:服务器追踪客户端读取的 key,当这些 key 被修改时发送失效通知
- BCAST 模式:使用前缀广播,服务器不追踪读取,只广播匹配前缀的修改
- REDIRECT:将失效通知重定向到另一个客户端(用于实现客户端缓存库)
- OPTIN/OPTOUT:细粒度控制哪些命令的读取结果需要被追踪
*返回值
- OK:设置成功
*时间复杂度
- O(1)(启用/禁用追踪)
- O(N)(BCAST 模式下添加前缀,N 是前缀数量)
*版本兼容性
| Redis 版本 | 变更说明 |
|---|---|
| >= 6.0.0 | 可用 |
*示例
# 启用默认追踪
redis-cli CLIENT TRACKING ON
# 启用广播模式,追踪以 user: 开头的 key
redis-cli CLIENT TRACKING ON BCAST PREFIX user: PREFIX session:
# 重定向到另一个客户端(client-id 为 42)
redis-cli CLIENT TRACKING ON REDIRECT 42
# 关闭追踪
redis-cli CLIENT TRACKING OFF
# OPTIN 模式(只有 SELECTIVE 命令才会被追踪)
redis-cli CLIENT TRACKING ON OPTIN