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
。否则,返回错误。