CLIENT TRACKING

语法
CLIENT TRACKING <ON | OFF> [REDIRECT client-id] [PREFIX prefix
  [PREFIX prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]
可用版本
Redis开源版 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。否则,返回错误。
评价本页
返回顶部 ↑