CLIENT TRACKING

用法
CLIENT TRACKING 〈 ON | OFF 〉 [ REDIRECT client-id ] [ PREFIX prefix ] [ [ PREFIX prefix ] ... ] [ BCAST ] [ OPTIN ] [ OPTOUT ] [ NOLOOP ]
复杂度
O(1)。某些选项可能会引入额外的复杂度。
起始版本
6.0.0
ACL 类别
@connection, @slow

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

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

要启用追踪,请使用

CLIENT TRACKING on ... options ...

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

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

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

RESP2/RESP3 回复

简单字符串回复:如果连接成功进入追踪模式或追踪模式成功禁用,则返回 OK。否则,将返回错误。