客户跟踪
语法
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 会记住连接 requested,以便在此类键被 改 性。失效消息在同一连接中发送(仅可用 当使用 RESP3 协议时)或重定向到其他连接 (也可用于 RESP2 和 Pub/Sub)。一种特殊的广播模式是 在参与此协议的客户端接收每个 通知仅订阅给定的键前缀,而不管 键。鉴于论点的复杂性,请 有关详细信息,请参阅主客户端缓存文档。本手册页仅作为此子命令选项的参考。
要启用跟踪,请使用:
CLIENT TRACKING on ... options ...
该功能将在其整个生命周期内在当前连接中保持活动状态。
除非使用 关闭跟踪CLIENT TRACKING off
在某个时候。
以下是修改 命令:
REDIRECT <id>
:向具有指定 ID 的连接发送失效消息。连接必须存在。您可以使用CLIENT ID
.如果我们要重定向到的连接已终止,则在 RESP3 模式下,启用跟踪的连接将收到tracking-redir-broken
推送消息以发出条件信号。BCAST
:在广播模式下启用跟踪。在此模式下,无论连接请求的键如何,都会报告指定的所有前缀的失效消息。相反,当广播模式未启用时,Redis 将跟踪使用只读命令获取的密钥,并且将仅报告此类密钥的失效消息。PREFIX <prefix>
:对于广播,请注册给定的 Key 前缀,以便仅针对以此字符串开头的 Key 提供通知。可以多次提供此选项以注册多个前缀。如果在没有此选项的情况下启用广播,Redis 将为每个 key 发送通知。您不能删除单个前缀,但可以通过禁用和重新启用跟踪来删除所有前缀。使用此选项会增加 O(N^2) 的额外时间复杂度,其中 N 是跟踪的前缀总数。OPTIN
:当广播处于非活动状态时,通常不会跟踪只读命令中的键,除非它们在CLIENT CACHING yes
命令。OPTOUT
:当广播未激活时,通常会跟踪只读命令中的键,除非它们在CLIENT CACHING no
命令。NOLOOP
:不发送有关此连接本身修改的键的通知。
RESP2/RESP3 回复
简单的字符串回复:OK
如果连接已成功进入跟踪模式,或者是否成功禁用跟踪模式。否则,将返回错误。