客户跟踪

Syntax
CLIENT TRACKING <ON | OFF> [REDIRECT client-id] [PREFIX prefix
  [PREFIX prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]
Available since:
6.0.0
Time complexity:
O(1). Some options may introduce additional complexity.
ACL categories:
@slow, @connection,

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

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

为了启用跟踪,请使用:

CLIENT TRACKING on ... options ...

该功能将在当前连接中保持激活状态,除非在某个时刻使用CLIENT TRACKING off关闭跟踪。

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

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

RESP2/RESP3 回复

Simple string reply: OK if the connection was successfully put in tracking mode or if the tracking mode was successfully disabled. Otherwise, an error is returned.
RATE THIS PAGE
Back to top ↑