Redis CLIENT CACHING命令

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

启用跟踪后,Redis会记住连接请求的键,以便在此键修改后,发送无效消息。 无效消息在同一连接中发送(仅在使用RESP3协议时可用)或在其他连接中重定向(也可在RESP2和Pub/Sub中使用)。 一个特殊的broadcasting协议可用,参与此协议的客户端仅订阅给定的键前缀就可以接收每个通知,而与他们请求的键无关。 考虑到参数的复杂性,请参阅客户端缓存文档以获取详细信息。 本手册页仅是此子命令的参考。

为了启用跟踪,请使用:

CLIENT TRACKING on ... options ...

启用跟踪功能后,该功能将在当前连接中一直保持激活状态,除非使用CLIENT TRACKING off关闭跟踪功能。

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

  • REDIRECT <id>:将重定向消息发送到具有指定ID的连接。该连接必须存在,您可以使用CLIENT ID命令获得该连接的ID。如果我们重定向到的连接已终止,如果启用跟踪的连接在RESP3模式下将收到tracking-redir-broken的推送消息,以发出状态通知。
  • BCAST:在广播broadcasting模式下启用跟踪。在这种模式下,将为指定的所有前缀报告无效消息,而不考虑连接请求的键。相反,当未启用广播broadcasting模式时,Redis将跟踪使用只读命令获取了哪些键,并将仅报告此类键的无效消息。
  • PREFIX <prefix>:对于广播,请注册给定的键前缀,以便仅针对以该字符串开头的键提供通知。可以多次赋予此选项以注册多个前缀。如果在没有此选项的情况下启用了广播,则Redis将为每个键发送通知。
  • OPTIN:当广播未激活时,通常不跟踪只读命令中的键,除非在CLIENT CACHING yes命令之后立即调用它们。
  • OPTOUT:当广播未激活时,通常跟踪只读命令中的键,除非在CLIENT CACHING no命令之后立即调用它们。
  • NOLOOP:不发送有关此连接本身修改的键的通知。

可用版本:从6.0.0开始可用
时间复杂度:O(1)

命令格式

CLIENT TRACKING ON|OFF [REDIRECT client-id] [PREFIX prefix [PREFIX prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]

返回值

如果成功将连接置于跟踪模式或成功禁用跟踪模式,则返回OK。 否则,将返回错误。