CLIENT TRACKING

语法
CLIENT TRACKING <ON | OFF> [REDIRECT client-id] [PREFIX prefix
  [PREFIX prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]
可用版本
6.0.0
时间复杂度
O(1)。某些选项可能会增加额外的复杂度。
ACL 类别
@slow, @connection,

此命令启用 Redis 服务器的跟踪功能,该功能用于 服务器辅助的客户端缓存

启用跟踪后,Redis 会记住连接请求的键,以便在修改这些键时,稍后发送失效消息。失效消息将在同一个连接中发送(仅在使用 RESP3 协议时可用),或者在不同的连接中重定向(也适用于 RESP2 和 Pub/Sub)。还提供了一种特殊的“广播”模式,在这种模式下,参与此协议的客户端通过订阅给定的键前缀来接收所有通知,而与它们请求的键无关。鉴于参数的复杂性,请参考 主要的客户端缓存文档 了解详细信息。此手册页仅作为此子命令选项的参考。

要启用跟踪,请使用

CLIENT TRACKING on ... options ...

此功能将在当前连接的整个生命周期内保持活动状态,除非在某个时刻使用 CLIENT TRACKING off 关闭跟踪。

以下是修改启用跟踪时命令行为的选项列表

  • REDIRECT <id>:将失效消息发送到指定 ID 的连接。连接必须存在。您可以使用 CLIENT ID 获取连接的 ID。如果我们重定向到的连接已终止,则在 RESP3 模式下,启用跟踪的连接将接收 tracking-redir-broken 推送消息以信号通知此情况。
  • BCAST:在广播模式下启用跟踪。在此模式下,将针对所有指定的 前缀报告失效消息,而与连接请求的键无关。相反,当未启用广播模式时,Redis 将跟踪哪些键是使用只读命令获取的,并且仅针对这些键报告失效消息。
  • PREFIX <prefix>:对于广播,注册给定的键前缀,以便仅为以该字符串开头的键提供通知。此选项可以多次提供以注册多个前缀。如果在没有此选项的情况下启用广播,Redis 将针对每个键发送通知。您不能删除单个前缀,但可以通过禁用并重新启用跟踪来删除所有前缀。使用此选项会增加 O(N^2) 的额外时间复杂度,其中 N 是跟踪的总前缀数量。
  • OPTIN:当广播未处于活动状态时,通常不跟踪只读命令中的键,除非它们是在 CLIENT CACHING yes 命令之后立即调用的。
  • OPTOUT:当广播未处于活动状态时,通常会跟踪只读命令中的键,除非它们是在 CLIENT CACHING no 命令之后立即调用的。
  • NOLOOP:不要发送有关此连接本身修改的键的通知。

RESP2/RESP3 响应

简单字符串响应: 如果连接成功进入跟踪模式,或者如果成功禁用跟踪模式,则为 OK。否则,将返回错误。
RATE THIS PAGE
Back to top ↑