*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